Repository: c-koi/gmic-qt Branch: master Commit: aa4a6f4ab174 Files: 242 Total size: 3.0 MB Directory structure: gitextract_b0uqak3u/ ├── .github/ │ └── FUNDING.yml ├── .gitignore ├── .travis.yml ├── CMakeLists.txt ├── COPYING ├── NEW_HOST_HOWTO.md ├── README.md ├── STANDALONE.md ├── check_versions.sh ├── cmake/ │ └── modules/ │ ├── COPYING-CMAKE-SCRIPTS │ ├── FindFFTW3.cmake │ └── LibFindMacros.cmake ├── gmic_qt.desktop ├── gmic_qt.pro ├── gmic_qt.qrc ├── icons/ │ └── application/ │ └── gmic_qt.icns ├── pkg-config-check.sh ├── pre_version.sh ├── scripts/ │ ├── travis_build_cmake.sh │ └── travis_build_qmake.sh ├── src/ │ ├── ClickableLabel.cpp │ ├── ClickableLabel.h │ ├── Common.cpp │ ├── Common.h │ ├── CroppedActiveLayerProxy.cpp │ ├── CroppedActiveLayerProxy.h │ ├── CroppedImageListProxy.cpp │ ├── CroppedImageListProxy.h │ ├── DialogSettings.cpp │ ├── DialogSettings.h │ ├── FilterGuiDynamismCache.cpp │ ├── FilterGuiDynamismCache.h │ ├── FilterParameters/ │ │ ├── AbstractParameter.cpp │ │ ├── AbstractParameter.h │ │ ├── BoolParameter.cpp │ │ ├── BoolParameter.h │ │ ├── ButtonParameter.cpp │ │ ├── ButtonParameter.h │ │ ├── ChoiceParameter.cpp │ │ ├── ChoiceParameter.h │ │ ├── ColorParameter.cpp │ │ ├── ColorParameter.h │ │ ├── ConstParameter.cpp │ │ ├── ConstParameter.h │ │ ├── CustomDoubleSpinBox.cpp │ │ ├── CustomDoubleSpinBox.h │ │ ├── CustomSpinBox.cpp │ │ ├── CustomSpinBox.h │ │ ├── FileParameter.cpp │ │ ├── FileParameter.h │ │ ├── FilterParametersWidget.cpp │ │ ├── FilterParametersWidget.h │ │ ├── FloatParameter.cpp │ │ ├── FloatParameter.h │ │ ├── FolderParameter.cpp │ │ ├── FolderParameter.h │ │ ├── IntParameter.cpp │ │ ├── IntParameter.h │ │ ├── LinkParameter.cpp │ │ ├── LinkParameter.h │ │ ├── MultilineTextParameterWidget.cpp │ │ ├── MultilineTextParameterWidget.h │ │ ├── NoteParameter.cpp │ │ ├── NoteParameter.h │ │ ├── PointParameter.cpp │ │ ├── PointParameter.h │ │ ├── SeparatorParameter.cpp │ │ ├── SeparatorParameter.h │ │ ├── TextParameter.cpp │ │ └── TextParameter.h │ ├── FilterSelector/ │ │ ├── FavesModel.cpp │ │ ├── FavesModel.h │ │ ├── FavesModelReader.cpp │ │ ├── FavesModelReader.h │ │ ├── FavesModelWriter.cpp │ │ ├── FavesModelWriter.h │ │ ├── FilterTagMap.cpp │ │ ├── FilterTagMap.h │ │ ├── FiltersModel.cpp │ │ ├── FiltersModel.h │ │ ├── FiltersModelBinaryReader.cpp │ │ ├── FiltersModelBinaryReader.h │ │ ├── FiltersModelBinaryWriter.cpp │ │ ├── FiltersModelBinaryWriter.h │ │ ├── FiltersModelReader.cpp │ │ ├── FiltersModelReader.h │ │ ├── FiltersPresenter.cpp │ │ ├── FiltersPresenter.h │ │ ├── FiltersView/ │ │ │ ├── FilterTreeAbstractItem.cpp │ │ │ ├── FilterTreeAbstractItem.h │ │ │ ├── FilterTreeFolder.cpp │ │ │ ├── FilterTreeFolder.h │ │ │ ├── FilterTreeItem.cpp │ │ │ ├── FilterTreeItem.h │ │ │ ├── FilterTreeItemDelegate.cpp │ │ │ ├── FilterTreeItemDelegate.h │ │ │ ├── FiltersView.cpp │ │ │ ├── FiltersView.h │ │ │ ├── TreeView.cpp │ │ │ └── TreeView.h │ │ ├── FiltersVisibilityMap.cpp │ │ └── FiltersVisibilityMap.h │ ├── FilterSyncRunner.cpp │ ├── FilterSyncRunner.h │ ├── FilterTextTranslator.cpp │ ├── FilterTextTranslator.h │ ├── FilterThread.cpp │ ├── FilterThread.h │ ├── Globals.cpp │ ├── Globals.h │ ├── GmicProcessor.cpp │ ├── GmicProcessor.h │ ├── GmicQt.cpp │ ├── GmicQt.h │ ├── GmicStdlib.cpp │ ├── GmicStdlib.h │ ├── HeadlessProcessor.cpp │ ├── HeadlessProcessor.h │ ├── Host/ │ │ ├── 8bf/ │ │ │ └── host_8bf.cpp │ │ ├── Gimp/ │ │ │ └── host_gimp.cpp │ │ ├── GmicQtHost.h │ │ ├── None/ │ │ │ ├── ImageDialog.cpp │ │ │ ├── ImageDialog.h │ │ │ ├── JpegQualityDialog.cpp │ │ │ ├── JpegQualityDialog.h │ │ │ ├── host_none.cpp │ │ │ └── jpegqualitydialog.ui │ │ └── PaintDotNet/ │ │ └── host_paintdotnet.cpp │ ├── HtmlTranslator.cpp │ ├── HtmlTranslator.h │ ├── IconLoader.cpp │ ├── IconLoader.h │ ├── ImageTools.cpp │ ├── ImageTools.h │ ├── InputOutputState.cpp │ ├── InputOutputState.h │ ├── KeypointList.cpp │ ├── KeypointList.h │ ├── LanguageSettings.cpp │ ├── LanguageSettings.h │ ├── LayersExtentProxy.cpp │ ├── LayersExtentProxy.h │ ├── Logger.cpp │ ├── Logger.h │ ├── MainWindow.cpp │ ├── MainWindow.h │ ├── Misc.cpp │ ├── Misc.h │ ├── OverrideCursor.cpp │ ├── OverrideCursor.h │ ├── ParametersCache.cpp │ ├── ParametersCache.h │ ├── PersistentMemory.cpp │ ├── PersistentMemory.h │ ├── Settings.cpp │ ├── Settings.h │ ├── SourcesWidget.cpp │ ├── SourcesWidget.h │ ├── Tags.cpp │ ├── Tags.h │ ├── TimeLogger.cpp │ ├── TimeLogger.h │ ├── Updater.cpp │ ├── Updater.h │ ├── Utils.cpp │ ├── Utils.h │ ├── Widgets/ │ │ ├── InOutPanel.cpp │ │ ├── InOutPanel.h │ │ ├── LanguageSelectionWidget.cpp │ │ ├── LanguageSelectionWidget.h │ │ ├── PreviewWidget.cpp │ │ ├── PreviewWidget.h │ │ ├── ProgressInfoWidget.cpp │ │ ├── ProgressInfoWidget.h │ │ ├── ProgressInfoWindow.cpp │ │ ├── ProgressInfoWindow.h │ │ ├── SearchFieldWidget.cpp │ │ ├── SearchFieldWidget.h │ │ ├── VisibleTagSelector.cpp │ │ ├── VisibleTagSelector.h │ │ ├── ZoomLevelSelector.cpp │ │ └── ZoomLevelSelector.h │ └── ZoomConstraint.h ├── standalone.qrc ├── translations/ │ ├── authors/ │ │ ├── cs.txt │ │ ├── de.txt │ │ ├── es.txt │ │ ├── fr.txt │ │ ├── id.txt │ │ ├── it.txt │ │ ├── ja.txt │ │ ├── nl.txt │ │ ├── pl.txt │ │ ├── pt.txt │ │ ├── ru.txt │ │ ├── sv.txt │ │ ├── uk.txt │ │ ├── zh.txt │ │ └── zh_tw.txt │ ├── cs.ts │ ├── de.ts │ ├── es.ts │ ├── filters/ │ │ ├── HOWTO.md │ │ ├── csv2ts.sh │ │ ├── gmic_qt_de.csv │ │ ├── gmic_qt_es.csv │ │ ├── gmic_qt_fr.csv │ │ ├── gmic_qt_it.csv │ │ ├── gmic_qt_ja.csv │ │ ├── gmic_qt_nl.csv │ │ ├── gmic_qt_pl.csv │ │ ├── gmic_qt_pt.csv │ │ ├── gmic_qt_ru.csv │ │ ├── gmic_qt_zh.csv │ │ └── ts2csv.sh │ ├── fr.ts │ ├── id.ts │ ├── it.ts │ ├── ja.ts │ ├── lrelease.sh │ ├── nl.ts │ ├── pl.ts │ ├── pt.ts │ ├── ru.ts │ ├── sv.ts │ ├── uk.ts │ ├── zh.ts │ └── zh_tw.ts ├── translations.qrc ├── ui/ │ ├── SearchFieldWidget.ui │ ├── dialogsettings.ui │ ├── filtersview.ui │ ├── headlessprogressdialog.ui │ ├── inoutpanel.ui │ ├── languageselectionwidget.ui │ ├── mainwindow.ui │ ├── multilinetextparameterwidget.ui │ ├── progressinfowidget.ui │ ├── progressinfowindow.ui │ ├── sourceswidget.ui │ └── zoomlevelselector.ui └── wip_translations.qrc ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/FUNDING.yml ================================================ custom: https://libreart.info/en/projects/gmic ================================================ FILE: .gitignore ================================================ Makefile *.a *.o *.pro.user *.pro.user.* *.so *~ .moc/* .obj/* .qmake.stash .qrc/* .ui/* ./Makefile gmic_gimp_qt gmic_paintdotnet_qt gmic_qt CMakeLists.txt.user .rsync-exclude translations/*.qm translations/filters/*.qm translations/filters/*.ts ================================================ FILE: .travis.yml ================================================ language: cpp git: depth: 1 os: - linux branches: only: - master - new_api - devel compiler: - gcc matrix: include: - os: linux dist: bionic env: - BUILD="qmake" GMIC_HOST="all" - os: linux dist: focal env: - BUILD="qmake" GMIC_HOST="all" - os: linux dist: bionic env: - BUILD="cmake" GMIC_HOST="none" - os: linux dist: bionic env: - BUILD="cmake" GMIC_HOST="gimp" fast_finish: true before_install: - date -u - uname -a - git clone --depth=1 https://github.com/dtschump/gmic.git gmic-clone - make -C gmic-clone/src CImg.h gmic_stdlib.h - if [ -z "$TRAVIS_OS_NAME" -o "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update; fi; install: - if [ -z "$TRAVIS_OS_NAME" -o "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install --allow-unauthenticated gdb libfftw3-dev zlib1g-dev libcurl4-openssl-dev libx11-dev libgimp2.0 libgegl-dev libgimp2.0-dev qt5-default qt5-qmake qtbase5-dev qttools5-dev qttools5-dev-tools; fi; script: - g++ --version - if [ -z "$TRAVIS_OS_NAME" -o "$TRAVIS_OS_NAME" = "linux" ]; then travis_wait 45 ./scripts/travis_build_${BUILD}.sh; fi; ================================================ FILE: CMakeLists.txt ================================================ project(gmic-qt) message(STATUS "Using CMake version: ${CMAKE_VERSION}") cmake_minimum_required(VERSION 3.10.0 FATAL_ERROR) LIST (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") include(FeatureSummary) include(FindPkgConfig) set(CMAKE_CXX_STANDARD 11) add_definitions(-Dcimg_use_cpp11=1) option(BUILD_WITH_QT6 "Build with Qt6, else Qt5" OFF) if(BUILD_WITH_QT6) set(MIN_QT_VERSION 6.5.0) else() set(MIN_QT_VERSION 5.2.0) endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC OFF) set(CMAKE_AUTORCC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(EXTRA_LIBRARIES) if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() message("Build type is " ${CMAKE_BUILD_TYPE}) set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host gmic-qt will be built: gimp, gimp3 (experimental), none, paintdotnet or 8bf.") if (${GMIC_QT_HOST} STREQUAL "none") message("Building standalone version.") else() message("Building for target host application: " ${GMIC_QT_HOST}) endif() option(ENABLE_SYSTEM_GMIC "Find GMIC shared library installed on the system" ON) if (ENABLE_SYSTEM_GMIC) option(ENABLE_DYNAMIC_LINKING "Dynamically link the binaries to the GMIC shared library" ON) else() option(ENABLE_DYNAMIC_LINKING "Dynamically link the binaries to the GMIC shared library" OFF) set (GMIC_LIB_PATH "${GMIC_PATH}" CACHE STRING "Define the path to the GMIC shared library") if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../src/gmic.cpp") set (GMIC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../src" CACHE STRING "Define the path to the gmic headers") else() set (GMIC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../gmic/src" CACHE STRING "Define the path to the gmic headers") endif() message("G'MIC path: " ${GMIC_PATH}) endif() option(ENABLE_CURL "Add support for curl" ON) option(ENABLE_ASAN "Enable -fsanitize=address (if debug build)" ON) option(ENABLE_FFTW3 "Enable FFTW3 library support" ON) include(CheckIPOSupported) check_ipo_supported(RESULT HAVE_LTO LANGUAGES CXX) if (HAVE_LTO) option(ENABLE_LTO "Enable Link Time Optimizer" OFF) endif() if (MSVC) option(ENABLE_CFG "Enable Control Flow Guard (MSVC)" ON) add_definitions(-D__PRETTY_FUNCTION__=__FUNCSIG__) endif() if (CMAKE_BUILD_TYPE STREQUAL "Debug") set(ENABLE_LTO OFF FORCE) endif() if (NOT ENABLE_SYSTEM_GMIC) # # Look for G'MIC repository # get_filename_component(GMIC_ABSOLUTE_PATH ${GMIC_PATH} ABSOLUTE BASEDIR ${CMAKE_SOURCE_DIR}) if (EXISTS ${GMIC_ABSOLUTE_PATH}/gmic.cpp) message("Found G'MIC repository") else() get_filename_component(TARGET_CLONE_DIR ${GMIC_ABSOLUTE_PATH}/.. ABSOLUTE) message("") message("Cannot find G'MIC repository in " ${GMIC_ABSOLUTE_PATH} ) message("") message("You should try:") message("") message(" git clone https://github.com/dtschump/gmic.git " ${TARGET_CLONE_DIR}/gmic ) message("") message(FATAL_ERROR "\nG'MIC repository not found") endif() # # Look for CImg.h and gmic_stdlib_community.h # set(GMIC_FILES CImg.h gmic_stdlib_community.h) foreach(F ${GMIC_FILES}) if(EXISTS ${GMIC_ABSOLUTE_PATH}/${F}) message("Found " ${GMIC_PATH}/${F}) else() message(${F} " not found") execute_process(COMMAND make -C ${GMIC_ABSOLUTE_PATH} ${F}) if(EXISTS ${GMIC_ABSOLUTE_PATH}/${F}) message("Found " ${GMIC_PATH}/${F}) else() message(FATAL_ERROR "\nCannot obtain " ${GMIC_PATH}/${F}) endif() endif() endforeach() # # Ensure that gmic and CImg are the same version # file(STRINGS ${GMIC_ABSOLUTE_PATH}/CImg.h CIMG_VERSION REGEX "cimg_version ") string(REGEX REPLACE ".*cimg_version " "" CIMG_VERSION ${CIMG_VERSION}) message("CImg version is [" ${CIMG_VERSION} "]") file(STRINGS ${GMIC_ABSOLUTE_PATH}/gmic.h GMIC_VERSION REGEX "gmic_version ") string(REGEX REPLACE ".*gmic_version " "" GMIC_VERSION ${GMIC_VERSION}) message("G'MIC version is [" ${GMIC_VERSION} "]") if (NOT(${GMIC_VERSION} EQUAL ${CIMG_VERSION})) message(FATAL_ERROR "\nVersion numbers of files 'gmic.h' (" ${GMIC_VERSION} ") and 'CImg.h' (" ${CIMG_VERSION} ") mismatch") endif() endif() option(PRERELEASE "Set to ON makes this a prelease build") if (${PRERELEASE}) string(TIMESTAMP PRERELEASE_DATE %y%m%d) message("Prelease date is " ${PRERELEASE_DATE}) add_definitions(-Dgmic_prerelease="${PRERELEASE_DATE}") endif() option(DRMINGW "Set to ON enables the drmingw debugger.") if (${DRMINGW}) add_definitions(-DDRMINGW) endif() # Required packages # # Gmic # if (ENABLE_SYSTEM_GMIC) find_package(Gmic REQUIRED CONFIG) endif (ENABLE_SYSTEM_GMIC) # # Threads # find_package(Threads REQUIRED) if(BUILD_WITH_QT6) # # Qt6 # find_package(Qt6 ${MIN_QT_VERSION} REQUIRED COMPONENTS Core Gui Widgets Network ) # # For the translations # find_package(Qt6LinguistTools REQUIRED) set(QT_VERSION_MAJOR 6) else() # # Qt5 # find_package(Qt5 ${MIN_QT_VERSION} REQUIRED COMPONENTS Core Gui Widgets Network ) # # For the translations # find_package(Qt5LinguistTools REQUIRED) set(QT_VERSION_MAJOR 5) endif() # # PNG # find_package(PNG REQUIRED) add_definitions(${PNG_DEFINITIONS}) add_definitions(-Dcimg_use_png) include_directories(SYSTEM ${PNG_INCLUDE_DIR}) if (APPLE) # this is not added correctly on OSX -- see http://forum.kde.org/viewtopic.php?f=139&t=101867&p=221242#p221242 include_directories(SYSTEM ${PNG_INCLUDE_DIR}) endif() # # ZLIB # find_package(ZLIB REQUIRED) add_definitions(-Dcimg_use_zlib) include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS} ) # # FFTW3 # if (ENABLE_FFTW3) find_package(FFTW3 REQUIRED) add_definitions(-Dcimg_use_fftw3 ) include_directories(${FFTW3_INCLUDE_DIR}) # Detect include(CheckCXXSourceCompiles) set(CMAKE_REQUIRED_INCLUDES ${FFTW3_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${FFTW3_LIBRARIES}) check_cxx_source_compiles(" #include int main() { fftw_init_threads(); } " HAVE_FFTW3_THREADS) if(HAVE_FFTW3_THREADS) message(STATUS "FFTW threads Found") list(APPEND EXTRA_LIBRARIES ${FFTW3_THREADS_LIBRARIES}) else() add_definitions(-Dcimg_use_fftw3_singlethread) endif() endif() # # CURL # if(ENABLE_CURL) find_package(CURL) if (CURL_FOUND) add_definitions(-Dcimg_use_curl) include_directories(SYSTEM ${CURL_INCLUDE_DIRS} ) endif() endif() # # Test for OpenMP # find_package(OpenMP 2.0) set_package_properties(OpenMP PROPERTIES DESCRIPTION "A low-level parallel execution library" URL "http://openmp.org/wp/" TYPE OPTIONAL PURPOSE "Optionally used by gmic-qt") if (OpenMP_FOUND) message(STATUS "G'Mic: using OpenMP ${OpenMP_CXX_VERSION}") link_libraries(OpenMP::OpenMP_CXX) add_definitions(-Dcimg_use_openmp) endif() # # LTO option # if (ENABLE_LTO) message(STATUS "Link Time Optimizer enabled") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() # # Enable CFG # if (MSVC) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:16777216") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /STACK:16777216") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /STACK:16777216") if (ENABLE_CFG) add_compile_options(/guard:CF) add_link_options(/GUARD:CF) endif() elseif(WIN32) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,16777216") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--stack,16777216") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--stack,16777216") endif() # # add all defines # set(gmic_qt_LIBRARIES Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Network ${PNG_LIBRARIES} ${FFTW3_LIBRARIES} ${ZLIB_LIBRARIES} ${EXTRA_LIBRARIES} ) if(ENABLE_CURL) if (CURL_FOUND) set(gmic_qt_LIBRARIES ${gmic_qt_LIBRARIES} ${CURL_LIBRARIES} ) endif() endif() add_definitions(-Dgmic_core) add_definitions(-Dgmic_community) add_definitions(-Dcimg_use_abort) add_definitions(-Dgmic_is_parallel) add_definitions(-Dgmic_gui) add_definitions(-Dcimg_use_abort) add_definitions(-Dcimg_appname=\"gmic\") if (UNIX) add_definitions(-D_IS_UNIX_) if(ANDROID) add_definitions(-Dcimg_display=0) elseif(NOT APPLE) add_definitions(-Dcimg_display=1) add_definitions(-Dcimg_use_vt100) find_package(X11) set(gmic_qt_LIBRARIES ${gmic_qt_LIBRARIES} ${X11_LIBRARIES} # XXX: Search for X11: Wayland is coming! ) endif() endif() if (APPLE) add_definitions(-Dcimg_display=0) add_definitions(-D_IS_MACOS_) set(CMAKE_MACOSX_RPATH 1) set(BUILD_WITH_INSTALL_RPATH 1) add_definitions(-mmacosx-version-min=10.9 -Wno-macro-redefined -Wno-deprecated-register) endif() if (WIN32) add_definitions(-Dcimg_display=2) add_definitions(-DPSAPI_VERSION=1) add_definitions(-D_IS_WINDOWS_) if (MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_compile_options(/wd4267) endif() set(gmic_qt_LIBRARIES ${gmic_qt_LIBRARIES} Threads::Threads psapi gdi32 ) endif() SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(CMAKE_INSTALL_RPATH "$ORIGIN/") if (CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-D_GMIC_QT_DEBUG_) if(ENABLE_ASAN) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") endif(ENABLE_ASAN) elseif (CMAKE_BUILD_TYPE STREQUAL "Release") add_definitions(-DQT_NO_DEBUG_OUTPUT) if (MSVC) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /fp:fast /Oi") else() string(REPLACE "-O2" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REPLACE "-O3" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") endif() if (NOT MSVC) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s") endif() if (WIN32 AND NOT MSVC) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows") endif() elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") add_definitions(-DQT_NO_DEBUG_OUTPUT) if(MSVC) string(REPLACE "Ob1" "Ob2" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /fp:fast /Oi") else() string(REPLACE "-O2" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") string(REPLACE "-O3" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") if (NOT ENABLE_SYSTEM_GMIC) set_source_files_properties(${GMIC_PATH}/gmic.cpp PROPERTIES COMPILE_FLAGS "-O3") endif (NOT ENABLE_SYSTEM_GMIC) set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2") endif() else() message(FATAL_ERROR "Build type not recognized (${CMAKE_BUILD_TYPE})") endif() if (NOT ENABLE_SYSTEM_GMIC) include_directories(${GMIC_PATH}) endif (NOT ENABLE_SYSTEM_GMIC) include_directories(${CMAKE_SOURCE_DIR}/src) set (gmic_qt_SRCS src/ClickableLabel.h src/Common.h src/CroppedActiveLayerProxy.h src/CroppedImageListProxy.h src/DialogSettings.h src/FilterParameters/AbstractParameter.h src/FilterParameters/BoolParameter.h src/FilterParameters/ButtonParameter.h src/FilterParameters/ChoiceParameter.h src/FilterParameters/ColorParameter.h src/FilterParameters/ConstParameter.h src/FilterParameters/CustomDoubleSpinBox.h src/FilterParameters/CustomSpinBox.h src/FilterParameters/FileParameter.h src/FilterParameters/FilterParametersWidget.h src/FilterParameters/FloatParameter.h src/FilterParameters/FolderParameter.h src/FilterParameters/IntParameter.h src/FilterParameters/LinkParameter.h src/FilterParameters/MultilineTextParameterWidget.h src/FilterParameters/NoteParameter.h src/FilterParameters/PointParameter.h src/FilterParameters/SeparatorParameter.h src/FilterParameters/TextParameter.h src/FilterSelector/FavesModel.h src/FilterSelector/FavesModelReader.h src/FilterSelector/FavesModelWriter.h src/FilterSelector/FiltersModelBinaryReader.h src/FilterSelector/FiltersModelBinaryWriter.h src/FilterSelector/FiltersModel.h src/FilterSelector/FiltersModelReader.h src/FilterSelector/FiltersPresenter.h src/FilterSelector/FiltersView/FiltersView.h src/FilterSelector/FiltersView/FilterTreeAbstractItem.h src/FilterSelector/FiltersView/FilterTreeFolder.h src/FilterSelector/FiltersView/FilterTreeItemDelegate.h src/FilterSelector/FiltersView/FilterTreeItem.h src/FilterSelector/FiltersView/TreeView.h src/FilterSelector/FiltersVisibilityMap.h src/FilterSelector/FilterTagMap.h src/FilterGuiDynamismCache.h src/FilterSyncRunner.h src/FilterTextTranslator.h src/FilterThread.h src/Globals.h src/GmicProcessor.h src/GmicQt.h src/GmicStdlib.h src/HeadlessProcessor.h src/Host/GmicQtHost.h src/HtmlTranslator.h src/IconLoader.h src/ImageTools.h src/InputOutputState.h src/KeypointList.h src/LanguageSettings.h src/LayersExtentProxy.h src/Logger.h src/MainWindow.h src/Misc.h src/OverrideCursor.h src/ParametersCache.h src/PersistentMemory.h src/Settings.h src/SourcesWidget.h src/Tags.h src/TimeLogger.h src/Updater.h src/Utils.h src/Widgets/InOutPanel.h src/Widgets/LanguageSelectionWidget.h src/Widgets/PreviewWidget.h src/Widgets/ProgressInfoWidget.h src/Widgets/ProgressInfoWindow.h src/Widgets/SearchFieldWidget.h src/Widgets/VisibleTagSelector.h src/Widgets/ZoomLevelSelector.h src/ZoomConstraint.h ) if (NOT ENABLE_SYSTEM_GMIC) set(gmic_qt_SRCS ${gmic_qt_SRCS} ${GMIC_PATH}/gmic.h ${GMIC_PATH}/CImg.h ${GMIC_PATH}/gmic_stdlib_community.h ) endif() set(gmic_qt_SRCS ${gmic_qt_SRCS} src/ClickableLabel.cpp src/Common.cpp src/CroppedActiveLayerProxy.cpp src/CroppedImageListProxy.cpp src/DialogSettings.cpp src/FilterParameters/AbstractParameter.cpp src/FilterParameters/BoolParameter.cpp src/FilterParameters/ButtonParameter.cpp src/FilterParameters/ChoiceParameter.cpp src/FilterParameters/ColorParameter.cpp src/FilterParameters/ConstParameter.cpp src/FilterParameters/CustomDoubleSpinBox.cpp src/FilterParameters/CustomSpinBox.cpp src/FilterParameters/FileParameter.cpp src/FilterParameters/FilterParametersWidget.cpp src/FilterParameters/FloatParameter.cpp src/FilterParameters/FolderParameter.cpp src/FilterParameters/IntParameter.cpp src/FilterParameters/LinkParameter.cpp src/FilterParameters/MultilineTextParameterWidget.cpp src/FilterParameters/NoteParameter.cpp src/FilterParameters/PointParameter.cpp src/FilterParameters/SeparatorParameter.cpp src/FilterParameters/TextParameter.cpp src/FilterSelector/FavesModel.cpp src/FilterSelector/FavesModelReader.cpp src/FilterSelector/FavesModelWriter.cpp src/FilterSelector/FiltersModelBinaryReader.cpp src/FilterSelector/FiltersModelBinaryWriter.cpp src/FilterSelector/FiltersModel.cpp src/FilterSelector/FiltersModelReader.cpp src/FilterSelector/FiltersPresenter.cpp src/FilterSelector/FiltersView/FiltersView.cpp src/FilterSelector/FiltersView/FilterTreeAbstractItem.cpp src/FilterSelector/FiltersView/FilterTreeFolder.cpp src/FilterSelector/FiltersView/FilterTreeItem.cpp src/FilterSelector/FiltersView/FilterTreeItemDelegate.cpp src/FilterSelector/FiltersView/TreeView.cpp src/FilterSelector/FiltersVisibilityMap.cpp src/FilterSelector/FilterTagMap.cpp src/FilterGuiDynamismCache.cpp src/FilterSyncRunner.cpp src/FilterTextTranslator.cpp src/FilterThread.cpp src/Globals.cpp src/GmicProcessor.cpp src/GmicQt.cpp src/GmicStdlib.cpp src/HeadlessProcessor.cpp src/HtmlTranslator.cpp src/IconLoader.cpp src/ImageTools.cpp src/InputOutputState.cpp src/KeypointList.cpp src/LanguageSettings.cpp src/LayersExtentProxy.cpp src/Logger.cpp src/MainWindow.cpp src/Misc.cpp src/OverrideCursor.cpp src/ParametersCache.cpp src/PersistentMemory.cpp src/Settings.cpp src/SourcesWidget.cpp src/Tags.cpp src/TimeLogger.cpp src/Updater.cpp src/Utils.cpp src/Widgets/InOutPanel.cpp src/Widgets/LanguageSelectionWidget.cpp src/Widgets/PreviewWidget.cpp src/Widgets/ProgressInfoWidget.cpp src/Widgets/ProgressInfoWindow.cpp src/Widgets/SearchFieldWidget.cpp src/Widgets/VisibleTagSelector.cpp src/Widgets/ZoomLevelSelector.cpp ) set (gmic_qt_FORMS ui/dialogsettings.ui ui/filtersview.ui ui/headlessprogressdialog.ui ui/inoutpanel.ui ui/languageselectionwidget.ui ui/mainwindow.ui ui/multilinetextparameterwidget.ui ui/progressinfowidget.ui ui/progressinfowindow.ui ui/SearchFieldWidget.ui ui/sourceswidget.ui ui/zoomlevelselector.ui ) if(ENABLE_DYNAMIC_LINKING) set(CMAKE_SKIP_RPATH TRUE) # G'MIC-Qt needs visibility into the private symbols defined # by the gmic.cpp plugin. However, this is only possible # if the library is static OR if it's dynamic and built by # a compiler that supports .so-style exports. if (TARGET libgmicstatic OR MSVC OR NOT ENABLE_SYSTEM_GMIC) set(gmic_qt_LIBRARIES ${gmic_qt_LIBRARIES} libgmicstatic ) elseif(TARGET libgmic) set(gmic_qt_LIBRARIES ${gmic_qt_LIBRARIES} libgmic ) elseif(GMIC_LIB_PATH) set(gmic_qt_LIBRARIES ${gmic_qt_LIBRARIES} "gmic" ) else() message(FATAL_ERROR "No G'MIC library is available for linking. Please build libgmic as a static library.") endif() if (NOT ENABLE_SYSTEM_GMIC) if (GMIC_LIB_PATH) link_directories(${GMIC_LIB_PATH}) # Inject the G'MIC CImg plugin. include_directories(../src) else() # Mimic an external G'MIC library build for catching link ABI errors. add_library(libgmicstatic STATIC ../src/gmic.cpp) target_include_directories(libgmicstatic PUBLIC ../src) # We need internal access into the gmic-core API. target_compile_definitions(libgmicstatic PUBLIC gmic_core) set_target_properties(libgmicstatic PROPERTIES AUTOMOC OFF ) target_link_libraries(libgmicstatic PUBLIC ${PNG_LIBRARIES} ${FFTW3_LIBRARIES} ${ZLIB_LIBRARIES} ${CURL_LIBRARIES} ${EXTRA_LIBRARIES}) endif() else() # Inject the G'MIC CImg plugin. include_directories(../src) endif() else(ENABLE_DYNAMIC_LINKING) set(gmic_qt_SRCS ${gmic_qt_SRCS} ${GMIC_PATH}/gmic.cpp ) endif(ENABLE_DYNAMIC_LINKING) message("Producing translation .qm files") execute_process(COMMAND make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/translations OUTPUT_QUIET) message("Producing filter translation .qm files") execute_process(COMMAND make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/translations/filters OUTPUT_QUIET) set(gmic_qt_QRC gmic_qt.qrc translations.qrc wip_translations.qrc ) if (${GMIC_QT_HOST} STREQUAL "gimp" OR ${GMIC_QT_HOST} STREQUAL "gimp3") if (${GMIC_QT_HOST} STREQUAL "gimp3") set(TARGET_GIMP_VERSION 3) else() set(TARGET_GIMP_VERSION 2) endif() find_package(PkgConfig REQUIRED) pkg_check_modules(GIMP REQUIRED gimp-${TARGET_GIMP_VERSION}.0 IMPORTED_TARGET) # CMake does not support passing --define-variable through pkg_get_variable. execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} gimp-${TARGET_GIMP_VERSION}.0 --define-variable=prefix=${CMAKE_INSTALL_PREFIX} --variable gimplibdir OUTPUT_VARIABLE GIMP_PKGLIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE) set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/Gimp/host_gimp.cpp) if(BUILD_WITH_QT6) qt6_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) else() qt5_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) endif() add_definitions(-DGMIC_HOST=gimp -DGIMP_DISABLE_DEPRECATED) add_executable(gmic_gimp_qt ${gmic_qt_SRCS} ${gmic_qt_QRC}) target_link_libraries( gmic_gimp_qt PRIVATE PkgConfig::GIMP ${gmic_qt_LIBRARIES} ) install(TARGETS gmic_gimp_qt RUNTIME DESTINATION "${GIMP_PKGLIBDIR}/plug-ins/gmic_gimp_qt") elseif (${GMIC_QT_HOST} STREQUAL "none") set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/None/host_none.cpp src/Host/None/ImageDialog.h src/Host/None/ImageDialog.cpp src/Host/None/JpegQualityDialog.h src/Host/None/JpegQualityDialog.cpp ) set(gmic_qt_FORMS ${gmic_qt_FORMS} src/Host/None/jpegqualitydialog.ui ) if(BUILD_WITH_QT6) qt6_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) else() qt5_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) endif() add_definitions(-DGMIC_HOST=standalone) add_executable(gmic_qt ${gmic_qt_SRCS} ${gmic_qt_QRC}) target_link_libraries(gmic_qt PRIVATE ${gmic_qt_LIBRARIES}) install(TARGETS gmic_qt RUNTIME DESTINATION bin) elseif (${GMIC_QT_HOST} STREQUAL "paintdotnet") set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/PaintDotNet/host_paintdotnet.cpp) if(BUILD_WITH_QT6) qt6_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) else() qt5_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) endif() add_definitions(-DGMIC_HOST=paintdotnet) add_executable(gmic_paintdotnet_qt ${gmic_qt_SRCS} ${gmic_qt_QRC}) target_link_libraries( gmic_paintdotnet_qt PRIVATE ${gmic_qt_LIBRARIES} ) elseif (${GMIC_QT_HOST} STREQUAL "8bf") # Look for a CMake package on MSVC or a PkgConfig file on MinGW etc. if (MSVC) find_package(lcms2 CONFIG REQUIRED) include_directories(${LCMS2_INCLUDE_DIR}) else() find_package(PkgConfig REQUIRED) pkg_check_modules(LCMS2 REQUIRED lcms2) endif() set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/8bf/host_8bf.cpp) if(BUILD_WITH_QT6) qt6_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) else() qt5_wrap_ui(gmic_qt_SRCS ${gmic_qt_FORMS}) endif() add_definitions(-DGMIC_HOST=plugin8bf) add_executable(gmic_8bf_qt ${gmic_qt_SRCS} ${gmic_qt_QRC}) target_link_libraries( gmic_8bf_qt PRIVATE ${gmic_qt_LIBRARIES} ${LCMS2_LIBRARIES} ) else() message(FATAL_ERROR "GMIC_QT_HOST is not defined as gimp, gimp3, none, paintdotnet or 8bf") endif() feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) ================================================ FILE: COPYING ================================================ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 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 . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ================================================ FILE: NEW_HOST_HOWTO.md ================================================ # Contributing - New host HOWTO This document describes the architecture of the plugin (especially its link with the host application) and provides guidelines for its adaptation to a new host application. ### Architecture of the plug-in The plugin is intended to be a standalone program which communicates with the host application (typically digital painting or photo retouching software) to exchange image data and commands. This architecture, as opposed to a software component fully integrated in the host application process, has been designed like this for several reasons, among which : * The plugin cannot mess up with the host application process which means in the worst case, make it crash. This would be a responsibility we don't want to endorse. If unfortunately the plugin crashes, the host application does not, and no user data are lost. As long as the host application handles properly its communication with the plugin, nothing bad should ever happen because of a plugin misbehavior. * Being based on Qt, the plugin GUI inherits the desktop environment theme but also handles its own custom "dark theme" using style sheets in an application-wide way. Consequently, a Qt-based host application could inherit from these modifications with unexpected results (for instance, messing up the whole theme of the host GUI). * This plugin architecture has allowed us to define our own and quite simple API made of a few functions (exactly 6) that need to be implemented for the plugin to be able to communicate with the host application. Namely, this API is the interface (in the software engineering sense) of the communication layer between the host and the plugin, from the viewpoint of the latter. Thus, any suitable implementation of this interface should be enough to make the plugin work with a given host. Note that only 4% of the whole "G'MIC-Qt for Gimp" source code is host-dependent. The next section gives more details about the work that needs to be done to have a functional plugin for a new host. * With a plugin being a self-contained application whose host-related code is clearly identified, we can more easily build the plugin and quickly distribute new versions, thus following the rapid development cycle of G'MIC. ### New host HOWTO: What needs to be done Consequently, in order to adapt the plug-in to a new host application cleanly, a few things need to be done: * Provide the host application with a communication system targeted to an external application, if it does not exist yet, so that it supports passing commands and possibly large image data (preferably through memory for improved performances). * Write a program: * Which is linked to an implementation of all functions declared and documented in the API header [`Host/GmicQtHost.h`](src/Host/GmicQtHost.h) (implementation usually written, at least in part, in a file named `host_HOSTNAME.cpp`). This is the only place where all the communication between the plugin and the host should occur. The plugin relies only on this interface to be implemented. * Which is linked to the host-agnostic code of the plugin found in this repository. (See [`GmicQt.h`](src/GmicQt.h) for more details about the services offered by this part of the plug-in's code.) ![Architecture](architecture.svg) * Which calls the `GmicQt::run()` function provided by the G'MIC-Qt code, once initialisations are done and the communication with the host is established. * It should be noticed that tweaking the API internals to adapt the plugin to a new host is definitely not good practice. It may break the compatibility with the plugin's future versions. * Adapt the [qmake](gmic_qt.pro) or [CMake](CMakeLists.txt) project files and follow the [build instructions](README.md#build-instructions) from the README. In all these steps, valuable hints may be obtained from the [implementation for the GIMP host](src/Host/Gimp), found in the [src/Host](src/Host) folder, which is where all of a given host related code should go (for the plugin side). If you succeed in creating such a file for a new host application, you are welcome to open a [pull request.](https://github.com/c-koi/gmic-qt/pulls) ### Guidelines First, we would like to point out that any contribution in the form of a new host adaptation is very (very) welcome. However, we have decided that contributions will be now accepted in this (upstream) repository only if they respect the architecture described above. It ensures that the plugin executables can be built for these different hosts and that they can be easily updated to the latest G'MIC version. Note that we do not deny the fact that some other "tweaked" versions of the G'MIC-Qt plugin (that do not follow the rules defined above) may work for other host applications. Simply, we cannot guarantee their proper functioning. We will not endorse the responsibility of any crash or data loss that may occur with such implementations. We will probably not help in updating these plugins with the newest G'MIC features either. We let the authors of these alternative implementations deal with these issues. Anyway, we will be happy to share links to these alternative implementations when we become aware of them, [here](https://github.com/c-koi/gmic-qt/blob/master/README.md) and on the official [G'MIC website](https://gmic.eu). ================================================ FILE: README.md ================================================ # G'MIC-Qt: a versatile G'MIC plugin ### Purpose G'MIC-Qt is a versatile front-end to the image processing framework [G'MIC](https://gmic.eu). It is in fact a plugin for [GIMP](http://gimp.org), [Krita](https://krita.org), [Paint.NET](https://www.getpaint.net/), [digiKam](https://www.digikam.org) and an 8bf filter plugin for Photoshop-compatible software as well as a [standalone application](STANDALONE.md). ### Authors * Sébastien Fourey * David Tschumperlé (G'MIC lib & original GTK-based plugin) ### Contributors * Boudewijn Rempt (Krita compatibility layer, later replaced by a native version of the plugin) * [amyspark](https://github.com/amyspark) (Krita native version of the plugin, work in progress) * [Nicholas Hayes](https://github.com/0xC0000054) (Paint.NET and 8bf filter compatibility layers, work in progress) * [Gilles Caulier](https://github.com/cgilles) (digiKam compatibility layer) ### Translators * Jan Helebrant (Czech translation) * Frank Tegtmeyer (German translation) * chroma_ghost & bazza/pixls.us (Spanish translation) * Sébastien Fourey (French translation) * Duddy Hadiwido (Indonesian translation) * Francesco Riosa (Italian translation) * iarga / pixls.us (Dutch translation) * Alex Mozheiko (Polish translation) * maxr (Portuguese translation) * Alex Mozheiko (Russian translation) * Andrex Starodubtsev (Ukrainian translation) * LinuxToy (https://twitter.com/linuxtoy) (Chinese translation) * omiya tou tokyogeometry@github (Japanese translation) ### Official (pre-release) binary packages * Available at [gmic.eu](https://gmic.eu) ### Travis CI last build status * Master branch (Linux) [![Build Status](https://api.travis-ci.org/c-koi/gmic-qt.svg?branch=master)](https://travis-ci.org/c-koi/gmic-qt) * Devel branch (Linux) [![Build Status](https://api.travis-ci.org/c-koi/gmic-qt.svg?branch=devel)](https://travis-ci.org/c-koi/gmic-qt) ### Build instructions By default, the gimp integration plugin is built. #### QMake qmake is simple to use but only really works in an environment where bash is available. ```sh git clone https://github.com/GreycLab/gmic.git git clone https://github.com/c-koi/gmic-qt.git make -C gmic/src CImg.h gmic_stdlib_community.h cd gmic-qt qmake [HOST=none|gimp|paintdotnet|8bf] make ``` #### CMake cmake works on all platforms. The first part is the same and requires make and wget to be available. If you don't have all dependencies, cmake will warn you which ones are missing. Note that the minimum cmake version is 3.1. ```sh git clone https://github.com/GreycLab/gmic.git git clone https://github.com/c-koi/gmic-qt.git make -C gmic/src CImg.h gmic_stdlib_community.h cd gmic-qt ``` Then make a build directory: ```sh mkdir build cd build ``` ```sh cmake .. [-DGMIC_QT_HOST=none|gimp|paintdotnet|8bf] [-DGMIC_PATH=/path/to/gmic] [-DCMAKE_BUILD_TYPE=[Debug|Release|RelwithDebInfo] make ``` ### Adapt G'MIC-Qt to new applications Developers will find guidelines and instructions for the adaptation of the plugin to a new host application in the [NEW HOST HOWTO](https://github.com/c-koi/gmic-qt/blob/master/NEW_HOST_HOWTO.md). ================================================ FILE: STANDALONE.md ================================================ # G'MIC-Qt standalone version HOWTO The G'MIC-Qt GUI accepts several options on its command line, thus allowing simple batch processing. In short, command line usage is as follows: * `gmic_qt [OPTIONS ...] [INPUT_FILES ...]` More than basic single input file name specification, options allow batch processing using the G'MIC filters, with or without the help of the GUI. ## Command line parameters ### Option `-o --output FILE` Instead of displaying the output image in a dialog with a "Save as..." button, the application will save the filter output in the specified file. If multiple input files are provided, it is suggested to include one of the `%b` or `%f` placeholders in the specified filename so that all output images will be written to distinct files : - `%b` is the input file basename, that is the filename with no extension and no path. - `%f` is the input file filename (without path). If, on the other hand, multiple layers are expected as output, the `%l` placeholder will be replaced by the layer number in each output file (0 is top layer). #### Examples ```sh # Launch the GUI, save output to output.png $ ./gmic_qt --output output.png input.png # Select a filter and its parameters twice (i.e. once for each input), save each output to a distinct file. $ ./gmic_qt --output processed-%f input1.png input2.png # Save the expected output layers in layer_0.png, layer_1.png, ... $ ./gmic_qt -o /tmp/layer_%l.png -p "Layers/Tiles to Layers" gmicky.png ``` ### Option `-q --quality N` Set the quality of JPEG output files to N (N in 0..100). #### Example ```sh # Select a filter through the GUI and save the result using 85 quality factor. $ ./gmic_qt --quality 85 --output blured-gmicky.jpg gmicky.png # Select a filter through the GUI, do not ask for JPEG quality when "Saving as..." $ ./gmic_qt --quality 85 gmicky.png ``` ### Option `-r --repeat` Use last applied filter and parameters. #### Example ```sh # Select a filter & its parameters from GUI, then apply. $ ./gmic_qt gmicky.png # Call the GUI with previously applied filter & parameters, output will be written to result.png $ ./gmic_qt --repeat --output result.png hat.png ``` ### Option `-p --path FILTER_PATH|FILTER_NAME` - Select filter from a full path in the filter tree or from its name (if unique). A filter path begins with `/`, like for example `/Black & White/Charcoal`. #### Example ```sh # Launch GUI with selected filter $ ./gmic_qt --path "/Black & White/Charcoal" gmicky.png # Apply Charcoal filter with default parameters to image, then # save result to charcoal-gmic.png $ ./gmic_qt --path Charcoal --ouput charcoal-%f gmicky.png ``` ### Option `-c --command "GMIC COMMAND"` Run the gmic command on input image(s). If a filter name/path is provided (option `-p`) and the command matches with this filter, or no filter name/path is provided and the command matches with some filter, then the parameters are completed using the filter's defaults. If the command does not match with a filter, the option `--apply` (see below) is highly recommended as the GUI will not be of any help. Of course, batch processing is possible through the extra option `--output`. #### Examples ```sh # Launch GUI with filter "/Black & White/Charcoal", using 30 as its first parameter and default values otherwise. $ ./gmic_qt -c "fx_charcoal 30" input.png # Batch process to blur several images, showing each output with a "Save as..." option $ ./gmic_qt -c "blur 10" images/*.png # Batch process to blur several images, writing output images in distinct files $ ./gmic_qt -o output/%b-blurred.jpg -c "blur 10" images/*.png ``` ### Option `--apply` Apply filter or command without showing the main plugin dialog for filter & parameters selection. One of the following options must therefore be present: `--path`, `--command` or `--repeat`. #### Examples ```sh # Shows up the resulting image dialog (image to be saved). $ ./gmic_qt --apply -c "blur 10" input.png # Just do the processing, no question asked $ ./gmic_qt --apply --path "Black & White/Charcoal" --output output.jpg input.jpg # Select a filter and parameters through GUI, than batch process $ ./gmic_qt --output test.png inputs/input1.png $ ./gmic_qt --repeat --apply --ouput output/%f input/*.png ``` In fact, there is a command dedicated to the latter sample use case: `--first` ### Option `--reapply-first -R` Launch the GUI once for the first input file, then reapply selected filter and parameters to all other files like `--repeat --apply` would do. #### Examples ```sh # Select a filter and parameters through GUI, than batch process to all input files $ ./gmic_qt --reapply-first --output output/%f input/*.png # Tune the Charcoal filter's parameters through the GUI, than batch process to all input files $ ./gmic_qt -R -p "Charcoal" -o output/%f input/*.png ``` ### Option `--show-last` Print last applied plugin parameters #### Example ```sh $ ./gmic_qt --apply -p "Charcoal" -c "fx_charcoal 56" input.png $ ./gmic_qt --show-last Path: /Black & White/Charcoal Name: Charcoal Command: fx_charcoal 56,70,170,0,1,0,50,70,255,255,255,0,0,0,0,0,50,50 InputMode: 1 OutputMode: 0 ``` ### Option `--show-last-after` Print last applied plugin parameters after filter execution. (Indeed, some filters may change the value of their parameters.) ### Option `--layers` Consider multiple input files as layers of the same image (first image is the top layer). ```sh $ ./gmic_qt -p "Blend [Average All]" --layers --apply -o output.png toplayer.png middlelayer.png bottomlayer.png ``` ================================================ FILE: check_versions.sh ================================================ #!/bin/bash set -o errexit function usage() { echo " Usage:" echo echo " check_version.sh GMIC_PATH [gmic|CImg|stdlib]" echo exit 0 } function die() { local message="$1" >&2 echo "Error: $*" exit 1 } (( $# == 0 )) && usage [[ -d "$1" ]] || die "$1 is not an existing directory" # @param folder function gmic_version() { local folder="$1" [[ -e "${folder}/gmic.h" ]] || die "File not found: ${folder}/gmic.h" local version=$(grep -F "#define gmic_version " ${folder}/gmic.h) echo ${version//* } } # @param folder function cimg_version() { local folder="$1" [[ -e "${folder}/CImg.h" ]] || die "File not found: ${folder}/CImg.h" local version=$(grep -F "#define cimg_version " ${folder}/CImg.h) echo ${version//* } } # @param folder function stdlib_version() { local folder="$1" [[ -e "${folder}/gmic_stdlib_community.h" ]] || die "File not found: ${folder}/gmic_stdlib_community.h" local version=$(grep -E "File.*gmic_stdlib_community.h.*\(v." ${folder}/gmic_stdlib_community.h) version=${version#*v.} version=${version%)} version=${version//.} echo ${version} } if [[ "$2" == gmic ]]; then gmic_version "$1" exit 0 fi if [[ "$2" == CImg ]]; then cimg_version "$1" exit 0 fi if [[ "$2" == stdlib ]]; then stdlib_version "$1" exit 0 fi echo "Checking G'MIC and CImg versions..." GMIC_VERSION=$(gmic_version "$1") CIMG_VERSION=$(cimg_version "$1") STDLIB_VERSION=$(stdlib_version "$1") echo "G'MIC version is .................... $GMIC_VERSION" echo "gmic_stdlib_community.h version is .. $STDLIB_VERSION" echo "CImg version is ..................... $CIMG_VERSION" if [[ $GMIC_VERSION != $CIMG_VERSION ]]; then die "Version numbers of files 'gmic.h' (${GMIC_VERSION}) and 'CImg.h' (${CIMG_VERSION}) mismatch" fi if [[ $GMIC_VERSION != $STDLIB_VERSION ]]; then die "Version numbers of files 'gmic.h' (${GMIC_VERSION}) and 'gmic_stdlib_community.h' (${STDLIB_VERSION}) mismatch" fi exit 0 ================================================ FILE: cmake/modules/COPYING-CMAKE-SCRIPTS ================================================ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: cmake/modules/FindFFTW3.cmake ================================================ # - Try to find the Fftw3 Libraries # # Once done this will define # # FFTW3_FOUND - system has fftw3 # FFTW3_INCLUDE_DIRS - the fftw3 include directories # FFTW3_LIBRARIES - the libraries needed to use fftw3 # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # if (NOT WIN32) include(LibFindMacros) libfind_pkg_check_modules(FFTW3_PKGCONF fftw3>=3.2) find_path(FFTW3_INCLUDE_DIR NAMES fftw3.h HINTS ${FFTW3_PKGCONF_INCLUDE_DIRS} ${FFTW3_PKGCONF_INCLUDEDIR} PATH_SUFFIXES fftw3 ) find_library(FFTW3_LIBRARY_CORE NAMES fftw3 HINTS ${FFTW3_PKGCONF_LIBRARY_DIRS} ${FFTW3_PKGCONF_LIBDIR} ) set(FFTW3_CORE_PROCESS_INCLUDES FFTW3_INCLUDE_DIR) set(FFTW3_CORE_PROCESS_LIBS FFTW3_LIBRARY_CORE) libfind_process(FFTW3_CORE) if(FFTW3_CORE_FOUND) message(STATUS "FFTW core Found Libraries: " ${FFTW3_CORE_LIBRARIES}) endif() find_library(FFTW3_LIBRARY_THREADS NAMES fftw3_threads HINTS ${FFTW3_PKGCONF_LIBRARY_DIRS} ${FFTW3_PKGCONF_LIBDIR} ) set(FFTW3_THREADS_PROCESS_INCLUDES FFTW3_INCLUDE_DIR) set(FFTW3_THREADS_PROCESS_LIBS FFTW3_LIBRARY_THREADS) libfind_process(FFTW3_THREADS) if(FFTW3_THREADS_FOUND) message(STATUS "FFTW threads Found Libraries: " ${FFTW3_THREADS_LIBRARIES}) endif() if(FFTW3_CORE_FOUND AND FFTW3_THREADS_FOUND) set(FFTW3_FOUND true) set(FFTW3_LIBRARIES ${FFTW3_CORE_LIBRARIES} ${FFTW3_THREADS_LIBRARIES}) endif() else() # TODO: Maybe use fftw3/FFTW3Config.cmake? find_path(FFTW3_INCLUDE_DIR NAMES fftw3.h ) find_library( FFTW3_LIBRARY NAMES libfftw3 libfftw3-3 libfftw3f-3 libfftw3l-3 fftw3 DOC "Libraries to link against for FFT Support") if (FFTW3_LIBRARY) set(FFTW3_LIBRARY_DIR ${FFTW3_LIBRARY}) endif() set (FFTW3_LIBRARIES ${FFTW3_LIBRARY}) if(FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY_DIR) set (FFTW3_FOUND true) message(STATUS "Correctly found FFTW3") else() message(STATUS "Could not find FFTW3") endif() endif() ================================================ FILE: cmake/modules/LibFindMacros.cmake ================================================ # Version 1.0 (2013-04-12) # Public Domain, originally written by Lasse Kärkkäinen # Published at http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries # If you improve the script, please modify the forementioned wiki page because # I no longer maintain my scripts (hosted as static files at zi.fi). Feel free # to remove this entire header if you use real version control instead. # Changelog: # 2013-04-12 Added version number (1.0) and this header, no other changes # 2009-10-08 Originally published # Works the same as find_package, but forwards the "REQUIRED" and "QUIET" arguments # used for the current package. For this to work, the first parameter must be the # prefix of the current package, then the prefix of the new package etc, which are # passed to find_package. macro (libfind_package PREFIX) set (LIBFIND_PACKAGE_ARGS ${ARGN}) if (${PREFIX}_FIND_QUIETLY) set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} QUIET) endif () if (${PREFIX}_FIND_REQUIRED) set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} REQUIRED) endif () find_package(${LIBFIND_PACKAGE_ARGS}) endmacro (libfind_package) # CMake developers made the UsePkgConfig system deprecated in the same release (2.6) # where they added pkg_check_modules. Consequently I need to support both in my scripts # to avoid those deprecated warnings. Here's a helper that does just that. # Works identically to pkg_check_modules, except that no checks are needed prior to use. macro (libfind_pkg_check_modules PREFIX PKGNAME) if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) include(UsePkgConfig) pkgconfig(${PKGNAME} ${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARY_DIRS ${PREFIX}_LDFLAGS ${PREFIX}_CFLAGS) else () find_package(PkgConfig) if (PKG_CONFIG_FOUND) pkg_check_modules(${PREFIX} QUIET ${PKGNAME}) endif () endif () endmacro (libfind_pkg_check_modules) # Do the final processing once the paths have been detected. # If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain # all the variables, each of which contain one include directory. # Ditto for ${PREFIX}_PROCESS_LIBS and library files. # Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES. # Also handles errors in case library detection was required, etc. macro (libfind_process PREFIX) # Skip processing if already processed during this run if (NOT ${PREFIX}_FOUND) # Start with the assumption that the library was found set (${PREFIX}_FOUND TRUE) # Process all includes and set _FOUND to false if any are missing foreach (i ${${PREFIX}_PROCESS_INCLUDES}) if (${i}) set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS} ${${i}}) mark_as_advanced(${i}) else () set (${PREFIX}_FOUND FALSE) endif () endforeach (i) # Process all libraries and set _FOUND to false if any are missing foreach (i ${${PREFIX}_PROCESS_LIBS}) if (${i}) set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${i}}) mark_as_advanced(${i}) else () set (${PREFIX}_FOUND FALSE) endif () endforeach (i) # Print message and/or exit on fatal error if (${PREFIX}_FOUND) if (NOT ${PREFIX}_FIND_QUIETLY) message (STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}") endif () else () if (${PREFIX}_FIND_REQUIRED) foreach (i ${${PREFIX}_PROCESS_INCLUDES} ${${PREFIX}_PROCESS_LIBS}) message("${i}=${${i}}") endforeach (i) message (FATAL_ERROR "Required library ${PREFIX} NOT FOUND.\nInstall the library (dev version) and try again. If the library is already installed, use ccmake to set the missing variables manually.") endif () endif () endif () endmacro (libfind_process) macro(libfind_library PREFIX basename) set(TMP "") if(MSVC80) set(TMP -vc80) endif() if(MSVC90) set(TMP -vc90) endif() set(${PREFIX}_LIBNAMES ${basename}${TMP}) if(${ARGC} GREATER 2) set(${PREFIX}_LIBNAMES ${basename}${TMP}-${ARGV2}) string(REGEX REPLACE "\\." "_" TMP ${${PREFIX}_LIBNAMES}) set(${PREFIX}_LIBNAMES ${${PREFIX}_LIBNAMES} ${TMP}) endif() find_library(${PREFIX}_LIBRARY NAMES ${${PREFIX}_LIBNAMES} PATHS ${${PREFIX}_PKGCONF_LIBRARY_DIRS} ) endmacro(libfind_library) ================================================ FILE: gmic_qt.desktop ================================================ [Desktop Entry] Version=1.0 Type=Application Name=G'MIC-Qt Terminal=false Comment=Apply G'MIC filters to images Comment[fr]=Appliquer des filtres G'MIC à des images TryExec=gmic_qt Exec=gmic_qt %F Icon=gmic_qt Categories=Graphics; MimeType=image/jpeg;image/png;image/bmp;image/gif;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/svg; ================================================ FILE: gmic_qt.pro ================================================ # # Set HOST variable to define target host software. # Possible values are "none", "gimp", "gimp3" (experimental), and "paintdotnet" # # !defined(HOST,var) { HOST = gimp } !defined(GMIC_DYNAMIC_LINKING,var) { GMIC_DYNAMIC_LINKING = off } !defined(ASAN,var) { ASAN = off } !defined(PRERELEASE, var) { # calling 'date' directly crashes on MSYS2! PRERELEASE = $$system(bash pre_version.sh) } # Possible values are "gcc" or "clang" !defined(COMPILER,var) { COMPILER = gcc } # Possible values are "on" or "off" !defined(LTO,var) { LTO=off } # # # # # For debugging purpose !defined(TIMING,var) { TIMING = off } # DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 greaterThan(QT_MAJOR_VERSION, 5) { message("Qt version >= 6.0.0") QMAKE_CXXFLAGS += -fPIE QMAKE_LFLAGS += -fPIE } # # Check Qt version (>= 5.2) # !greaterThan(QT_MAJOR_VERSION, 4):error("You need Qt 5.2 or greater to build this program.") equals(QT_MAJOR_VERSION,5) { !greaterThan(QT_MINOR_VERSION, 1):error("You need Qt 5.2 or greater to build this program.") } DEFINES += QT_DEPRECATED_WARNINGS # # Check that pkg-config is installed (qmake error messages are misleading, if not) # !system(bash pkg-config-check.sh):error("pkg-config is not installed") TEMPLATE = app QT += widgets network CONFIG += qt c++17 strict_c++ CONFIG += warn_on QT_CONFIG -= no-pkg-config CONFIG += link_pkgconfig VERSION = 0.0.0 PKGCONFIG += fftw3 zlib libpng libjpeg libcurl equals( HOST, "gimp" ) { PKGCONFIG += gimp-2.0 } equals( HOST, "gimp3" ) { PKGCONFIG += gimp-3.0 } equals( HOST, "8bf") { PKGCONFIG += lcms2 } DEFINES += cimg_use_cpp11=1 DEFINES += cimg_use_fftw3 cimg_use_zlib DEFINES += cimg_use_abort gmic_is_parallel cimg_use_curl cimg_use_png cimg_use_jpeg DEFINES += cimg_appname="\\\"gmic\\\"" equals(TIMING, "on")|equals(TIMING,"ON") { DEFINES += _TIMING_ENABLED_ message(Timing is enabled) } defined(GMIC_PATH, var) { message("GMIC_PATH is set ("$$GMIC_PATH")") } !defined(GMIC_PATH, var):exists(../src/gmic.cpp) { message(GMIC_PATH was not set: Found gmic sources in ../src) GMIC_PATH = ../src } !defined(GMIC_PATH, var):exists(../gmic/src/gmic.cpp) { message(GMIC_PATH was not set: Found gmic sources in ../gmic/src) GMIC_PATH = ../gmic/src } defined(GMIC_PATH, var):!exists( $$GMIC_PATH/gmic.cpp ) { error("G'MIC repository was not found ("$$GMIC_PATH")") } !defined(GMIC_PATH, var) { error("GMIC_PATH variable not set, and no G'MIC source tree found") } message("G'MIC repository was found ("$$GMIC_PATH")") DEPENDPATH += $$GMIC_PATH CIMG.target = $$GMIC_PATH/CImg.h CIMG.commands = \$(MAKE) -C $$GMIC_PATH CImg.h QMAKE_EXTRA_TARGETS += CIMG GMIC_STDLIB.target = $$GMIC_PATH/gmic_stdlib_community.h GMIC_STDLIB.commands = \$(MAKE) -C $$GMIC_PATH gmic_stdlib_community.h QMAKE_EXTRA_TARGETS += GMIC_STDLIB # $$escape_expand(\n\t) 'translations/%.qm'.depends += 'translations/%.ts' 'translations/%.qm'.commands += './translations/lrelease.sh $<' 'translations/filters/%.qm'.depends += 'translations/filters/%.ts' 'translations/filters/%.qm'.commands += './translations/lrelease.sh $<' 'translations/filters/%.ts'.depends += 'translations/filters/gmic_qt_%.csv' 'translations/filters/%.ts'.commands += './translations/filters/csv2ts.sh -o $@ $<' QMAKE_EXTRA_TARGETS += 'translations/%.qm' \ 'translations/filters/%.qm' \ 'translations/filters/%.ts' GMIC_VERSION = $$system(bash check_versions.sh $$GMIC_PATH gmic) message("G'MIC version is ................." $$GMIC_VERSION) exists($$GMIC_PATH/CImg.h) { CIMG_VERSION = $$system(bash check_versions.sh $$GMIC_PATH CImg) message("CImg version is .................." $$CIMG_VERSION) } exists($$GMIC_PATH/gmic_stdlib_community.h) { STDLIB_VERSION = $$system(bash check_versions.sh $$GMIC_PATH stdlib) message("gmic_stdlib_community.h version is" $$STDLIB_VERSION) } exists($$GMIC_PATH/CImg.h):exists($$GMIC_PATH/gmic_stdlib_community.h) { GMIC_VERSION = $$system(bash check_versions.sh $$GMIC_PATH gmic) STDLIB_VERSION = $$system(bash check_versions.sh $$GMIC_PATH stdlib) CIMG_VERSION = $$system(bash check_versions.sh $$GMIC_PATH CImg) !equals(GMIC_VERSION, $$CIMG_VERSION):{ error("Version numbers of files 'gmic.h' (" $$GMIC_VERSION ") and 'CImg.h' (" $$CIMG_VERSION ") mismatch") } !equals(GMIC_VERSION, $$STDLIB_VERSION):{ error("Version numbers of files 'gmic.h' (" $$GMIC_VERSION ") and 'gmic_stdlib_community.h' (" $$STDLIB_VERSION ") mismatch") } } QMAKE_DISTCLEAN = \ translations/*.qm \ translations/filters/*.ts \ translations/filters/*.qm equals( COMPILER, "clang" ) { message("Compiler is clang++") QMAKE_CXX = clang++ QMAKE_LINK = clang++ } !isEmpty(PRERELEASE) { message( Prerelease date is $$PRERELEASE ) DEFINES += gmic_prerelease="\\\"$$PRERELEASE\\\"" } LIBS += -lfftw3_threads win32 { DEFINES += _IS_WINDOWS_ DEFINES += cimg_display=2 LIBS += -mwindows -lpthread -DPSAPI_VERSION=1 -lpsapi -lgdi32 message( Windows/GDI32 platform ) } unix:!macx { DEFINES += _IS_UNIX_ DEFINES += cimg_display=1 PKGCONFIG += x11 message( Unix/X11 platform ) } macx { DEFINES += _IS_MACOS_ DEFINES += cimg_display=0 ICON = icons/application/gmic_qt.icns message( macOS platform ) } !win32:!unix:!macx { DEFINES += cimg_display=0 message( Unknown platform ) } equals( HOST, "gimp")|equals( HOST, "gimp3") { TARGET = gmic_gimp_qt SOURCES += src/Host/Gimp/host_gimp.cpp DEFINES += GMIC_HOST=gimp DEFINES += GIMP_DISABLE_DEPRECATED DEPENDPATH += $$PWD/src/Host/Gimp message(Target host software is GIMP) } equals( HOST, "none") { TARGET = gmic_qt DEFINES += GMIC_HOST=standalone HEADERS += src/Host/None/ImageDialog.h \ src/Host/None/JpegQualityDialog.h SOURCES += src/Host/None/host_none.cpp \ src/Host/None/ImageDialog.cpp \ src/Host/None/JpegQualityDialog.cpp FORMS += src/Host/None/jpegqualitydialog.ui DEPENDPATH += $$PWD/src/Host/None message(Building standalone version) } equals( HOST, "paintdotnet") { TARGET = gmic_paintdotnet_qt SOURCES += src/Host/PaintDotNet/host_paintdotnet.cpp DEFINES += GMIC_HOST=paintdotnet DEPENDPATH += $$PWD/src/Host/PaintDotNet message(Target host software is Paint.NET) } equals( HOST, "8bf") { TARGET = gmic_8bf_qt SOURCES += src/Host/8bf/host_8bf.cpp DEFINES += GMIC_HOST=plugin8bf DEPENDPATH += $$PWD/src/Host/8bf message(Target host software is 8bf filter) } # enable OpenMP by default on with g++, except on OS X !macx:*g++* { CONFIG += openmp } !macx:equals(COMPILER,"clang") { CONFIG += openmp } # use qmake CONFIG+=openmp ... to force using openmp # For example, on OS X with GCC 4.8 installed: # qmake -spec unsupported/macx-clang QMAKE_CXX=g++-4.8 QMAKE_LINK=g++-4.8 CONFIG+=openmp # Notes: # - the compiler name is g++-4.8 on Homebrew and g++-mp-4.8 on MacPorts # - we use the unsupported/macx-clang config because macx-g++ uses arch flags that are not recognized by GNU GCC openmp:equals(COMPILER,"gcc") { message("OpenMP enabled, with g++") DEFINES += cimg_use_openmp QMAKE_CXXFLAGS_DEBUG += -fopenmp QMAKE_CXXFLAGS_RELEASE += -fopenmp QMAKE_LFLAGS_DEBUG += -fopenmp QMAKE_LFLAGS_RELEASE += -fopenmp } openmp:equals(COMPILER,"clang") { message("OpenMP enabled, with clang++") DEFINES += cimg_use_openmp QMAKE_CXXFLAGS_DEBUG += -fopenmp=libomp -I/usr/lib/gcc/x86_64-redhat-linux/7/include/ QMAKE_CXXFLAGS_RELEASE += -fopenmp=libomp -I/usr/lib/gcc/x86_64-redhat-linux/7/include/ QMAKE_LFLAGS_DEBUG += -fopenmp=libomp QMAKE_LFLAGS_RELEASE += -fopenmp=libomp } equals(LTO,"on") { LTO = ON } CONFIG(release, debug|release):gcc|clang:equals(LTO,"ON") { message("Link Time Optimizer enabled") QMAKE_CXXFLAGS_RELEASE += -flto QMAKE_LFLAGS_RELEASE += -flto } DEFINES += gmic_gui gmic_core gmic_is_parallel gmic_community cimg_use_abort INCLUDEPATH += $$PWD $$PWD/src $$GMIC_PATH DEPENDPATH += $$PWD/src \ $$PWD/src/Host \ $$PWD/src/FilterParameters \ $$PWD/src/FilterSelector \ $$PWD/src/FilterSelector/FiltersView \ HEADERS += \ src/ClickableLabel.h \ src/Common.h \ src/FilterParameters/CustomSpinBox.h \ src/GmicQt.h \ src/Host/GmicQtHost.h \ src/OverrideCursor.h \ src/DialogSettings.h \ src/FilterParameters/AbstractParameter.h \ src/FilterParameters/BoolParameter.h \ src/FilterParameters/ButtonParameter.h \ src/FilterParameters/ChoiceParameter.h \ src/FilterParameters/ColorParameter.h \ src/FilterParameters/ConstParameter.h \ src/FilterParameters/CustomDoubleSpinBox.h \ src/FilterParameters/FileParameter.h \ src/FilterParameters/FilterParametersWidget.h \ src/FilterParameters/FloatParameter.h \ src/FilterParameters/FolderParameter.h \ src/FilterParameters/IntParameter.h \ src/FilterParameters/LinkParameter.h \ src/FilterParameters/MultilineTextParameterWidget.h \ src/FilterParameters/NoteParameter.h \ src/FilterParameters/PointParameter.h \ src/FilterParameters/SeparatorParameter.h \ src/FilterParameters/TextParameter.h \ src/FilterSelector/FiltersModel.h \ src/FilterSelector/FiltersModelReader.h \ src/FilterSelector/FiltersModelBinaryReader.h \ src/FilterSelector/FiltersModelBinaryWriter.h \ src/FilterSelector/FiltersPresenter.h \ src/FilterSelector/FiltersView/FiltersView.h \ src/FilterSelector/FiltersView/TreeView.h \ src/FilterSelector/FiltersVisibilityMap.h \ src/FilterSelector/FilterTagMap.h \ src/CroppedImageListProxy.h \ src/CroppedActiveLayerProxy.h \ src/FilterGuiDynamismCache.h \ src/FilterSyncRunner.h \ src/FilterThread.h \ src/FilterTextTranslator.h \ src/Globals.h \ src/GmicStdlib.h \ src/GmicProcessor.h \ src/HeadlessProcessor.h \ src/HtmlTranslator.h \ src/IconLoader.h \ src/ImageTools.h \ src/InputOutputState.h \ src/KeypointList.h \ src/LayersExtentProxy.h \ src/Logger.h \ src/LanguageSettings.h \ src/MainWindow.h \ src/Misc.h \ src/ParametersCache.h \ src/PersistentMemory.h \ src/Settings.h \ src/SourcesWidget.h \ src/Tags.h \ src/TimeLogger.h \ src/Updater.h \ src/Utils.h \ src/Widgets/VisibleTagSelector.h \ src/ZoomConstraint.h \ src/FilterSelector/FiltersView/FilterTreeFolder.h \ src/FilterSelector/FiltersView/FilterTreeItem.h \ src/FilterSelector/FavesModel.h \ src/FilterSelector/FavesModelReader.h \ src/FilterSelector/FiltersView/FilterTreeAbstractItem.h \ src/FilterSelector/FiltersView/FilterTreeItemDelegate.h \ src/FilterSelector/FavesModelWriter.h \ src/Widgets/PreviewWidget.h \ src/Widgets/ProgressInfoWidget.h \ src/Widgets/InOutPanel.h \ src/Widgets/ZoomLevelSelector.h \ src/Widgets/SearchFieldWidget.h \ src/Widgets/LanguageSelectionWidget.h \ src/Widgets/ProgressInfoWindow.h HEADERS += $$GMIC_PATH/gmic.h SOURCES += \ src/ClickableLabel.cpp \ src/Common.cpp \ src/FilterParameters/CustomSpinBox.cpp \ src/GmicQt.cpp \ src/OverrideCursor.cpp \ src/DialogSettings.cpp \ src/FilterParameters/AbstractParameter.cpp \ src/FilterParameters/BoolParameter.cpp \ src/FilterParameters/ButtonParameter.cpp \ src/FilterParameters/ChoiceParameter.cpp \ src/FilterParameters/ColorParameter.cpp \ src/FilterParameters/ConstParameter.cpp \ src/FilterParameters/CustomDoubleSpinBox.cpp \ src/FilterParameters/FileParameter.cpp \ src/FilterParameters/FilterParametersWidget.cpp \ src/FilterParameters/FloatParameter.cpp \ src/FilterParameters/FolderParameter.cpp \ src/FilterParameters/IntParameter.cpp \ src/FilterParameters/LinkParameter.cpp \ src/FilterParameters/MultilineTextParameterWidget.cpp \ src/FilterParameters/NoteParameter.cpp \ src/FilterParameters/PointParameter.cpp \ src/FilterParameters/SeparatorParameter.cpp \ src/FilterParameters/TextParameter.cpp \ src/FilterSelector/FiltersModel.cpp \ src/FilterSelector/FiltersModelReader.cpp \ src/FilterSelector/FiltersModelBinaryReader.cpp \ src/FilterSelector/FiltersModelBinaryWriter.cpp \ src/FilterSelector/FiltersPresenter.cpp \ src/FilterSelector/FiltersView/FiltersView.cpp \ src/FilterSelector/FiltersView/TreeView.cpp \ src/FilterSelector/FiltersVisibilityMap.cpp \ src/FilterSelector/FilterTagMap.cpp \ src/CroppedImageListProxy.cpp \ src/CroppedActiveLayerProxy.cpp \ src/FilterGuiDynamismCache.cpp \ src/FilterSyncRunner.cpp \ src/FilterThread.cpp \ src/FilterTextTranslator.cpp \ src/Globals.cpp \ src/GmicStdlib.cpp \ src/GmicProcessor.cpp \ src/HeadlessProcessor.cpp \ src/HtmlTranslator.cpp \ src/IconLoader.cpp \ src/ImageTools.cpp \ src/InputOutputState.cpp \ src/KeypointList.cpp \ src/LayersExtentProxy.cpp \ src/LanguageSettings.cpp \ src/Logger.cpp \ src/MainWindow.cpp \ src/ParametersCache.cpp \ src/PersistentMemory.cpp \ src/Settings.cpp \ src/SourcesWidget.cpp \ src/Tags.cpp \ src/TimeLogger.cpp \ src/Updater.cpp \ src/Utils.cpp \ src/Misc.cpp \ src/FilterSelector/FiltersView/FilterTreeItem.cpp \ src/FilterSelector/FiltersView/FilterTreeFolder.cpp \ src/FilterSelector/FavesModel.cpp \ src/FilterSelector/FavesModelReader.cpp \ src/FilterSelector/FiltersView/FilterTreeAbstractItem.cpp \ src/FilterSelector/FiltersView/FilterTreeItemDelegate.cpp \ src/FilterSelector/FavesModelWriter.cpp \ src/Widgets/PreviewWidget.cpp \ src/Widgets/ProgressInfoWidget.cpp \ src/Widgets/InOutPanel.cpp \ src/Widgets/VisibleTagSelector.cpp \ src/Widgets/ZoomLevelSelector.cpp \ src/Widgets/SearchFieldWidget.cpp \ src/Widgets/LanguageSelectionWidget.cpp \ src/Widgets/ProgressInfoWindow.cpp equals(GMIC_DYNAMIC_LINKING, "on" )|equals(GMIC_DYNAMIC_LINKING, "ON" ) { message(Dynamic linking with libgmic) LIBS += -Wl,-rpath,. $$GMIC_PATH/libgmic.so } equals(GMIC_DYNAMIC_LINKING, "off" )|equals(GMIC_DYNAMIC_LINKING, "OFF" ) { SOURCES += $$GMIC_PATH/gmic.cpp } # ALL_FORMS FORMS += ui/inoutpanel.ui \ ui/sourceswidget.ui \ ui/multilinetextparameterwidget.ui \ ui/progressinfowindow.ui \ ui/dialogsettings.ui \ ui/progressinfowidget.ui \ ui/mainwindow.ui \ ui/SearchFieldWidget.ui \ ui/headlessprogressdialog.ui \ ui/zoomlevelselector.ui \ ui/languageselectionwidget.ui \ ui/filtersview.ui RESOURCES += gmic_qt.qrc translations.qrc equals(HOST, "none") { RESOURCES += standalone.qrc } TRANSLATIONS = \ translations/cs.ts \ translations/de.ts \ translations/es.ts \ translations/fr.ts \ translations/id.ts \ translations/it.ts \ translations/ja.ts \ translations/nl.ts \ translations/pl.ts \ translations/pt.ts \ translations/ru.ts \ translations/sv.ts \ translations/uk.ts \ translations/zh.ts \ translations/zh_tw.ts RESOURCES += wip_translations.qrc # Prevent overwriting of these files by lupdate # TRANSLATIONS += translations/filters/fr.ts QMAKE_CXXFLAGS_RELEASE += -O3 QMAKE_LFLAGS_RELEASE += -s QMAKE_CXXFLAGS_DEBUG += -Dcimg_verbosity=3 unix { DEFINES += cimg_use_vt100 } CONFIG(release, debug|release) { message(Release build) DEFINES += QT_NO_DEBUG_OUTPUT } CONFIG(debug, debug|release) { message(Debug build) DEFINES += _GMIC_QT_DEBUG_ # QMAKE_CXXFLAGS_DEBUG += -Wfatal-errors } equals(ASAN,"on")|equals(ASAN,"ON") { message(Address sanitizer enabled) QMAKE_CXXFLAGS_DEBUG += -fsanitize=address QMAKE_LFLAGS_DEBUG += -fsanitize=address } UI_DIR = .ui MOC_DIR = .moc RCC_DIR = .qrc OBJECTS_DIR = .obj ================================================ FILE: gmic_qt.qrc ================================================ icons/bookmark-add.png icons/bookmark-remove.png icons/cancel.png icons/close.png icons/dark/bookmark-add.png icons/dark/bookmark-remove.png icons/dark/cancel.png icons/dark/close.png icons/dark/document-open.png icons/dark/draw-arrow-down.png icons/dark/draw-arrow-up.png icons/dark/edit-clear.png icons/dark/edit-copy.png icons/dark/edit-find.png icons/dark/folder.png icons/dark/insert-image.png icons/dark/list-add.png icons/dark/list-remove.png icons/dark/package_settings.png icons/dark/rename.png icons/dark/selection_mode.png icons/dark/system-run.png icons/dark/undo.png icons/dark/user-trash.png icons/dark/view-fullscreen.png icons/dark/view-refresh.png icons/dark/zoom-in.png icons/dark/zoom-out.png icons/document-open.png icons/draw-arrow-down.png icons/draw-arrow-up.png icons/edit-clear.png icons/edit-copy.png icons/edit-find.png icons/folder.png icons/insert-image.png icons/list-add.png icons/list-remove.png icons/package_settings.png icons/rename.png icons/selection_mode.png icons/system-run.png icons/undo.png icons/user-trash.png icons/view-fullscreen.png icons/view-refresh.png icons/zoom-in.png icons/zoom-out.png images/no_warning.png images/preview_left.png images/preview_right.png images/warning.png resources/gmic_hat.png resources/logos.png resources/transparency.png icons/color-wheel.png icons/dark/color-wheel.png icons/randomize.png ================================================ FILE: pkg-config-check.sh ================================================ #!/bin/bash bash -c "pkg-config --version" > /dev/null 2>&1 ================================================ FILE: pre_version.sh ================================================ #!/bin/bash # workaround for MSYS2 call of date by qmake. date "+%y%m%d%H" ================================================ FILE: scripts/travis_build_cmake.sh ================================================ #!/bin/bash set -ev if [ "${TRAVIS_BRANCH}" = devel ]; then BUILD_TYPE=Debug else BUILD_TYPE=Release fi cmake --version GMIC_PATH=$(pwd)/gmic-clone/src mkdir build cd build cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DGMIC_PATH=${GMIC_PATH} -DGMIC_QT_HOST=${GMIC_HOST} .. make VERBOSE=1 ================================================ FILE: scripts/travis_build_qmake.sh ================================================ #!/bin/bash set -ev if [ "${TRAVIS_BRANCH}" = devel ]; then config=debug else config=release fi qmake --version echo "Building standalone plugin" qmake CONFIG+=${config} HOST=none GMIC_PATH=gmic-clone/src make echo "Building Gimp plugin" qmake CONFIG+=${config} HOST=gimp GMIC_PATH=gmic-clone/src make make ================================================ FILE: src/ClickableLabel.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ClickableLabel.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "ClickableLabel.h" #include namespace GmicQt { ClickableLabel::ClickableLabel(QWidget * parent) : QLabel(parent) {} void ClickableLabel::mousePressEvent(QMouseEvent * e) { if (e->buttons() & Qt::LeftButton) { emit clicked(); } } } // namespace GmicQt ================================================ FILE: src/ClickableLabel.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ClickableLabel.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CLICKABLELABEL_H #define GMIC_QT_CLICKABLELABEL_H #include class QMouseEvent; namespace GmicQt { class ClickableLabel : public QLabel { Q_OBJECT public: ClickableLabel(QWidget * parent); void mousePressEvent(QMouseEvent * e) override; signals: void clicked(); }; } // namespace GmicQt #endif // GMIC_QT_CLICKABLELABEL_H ================================================ FILE: src/Common.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Common.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Common.h" ================================================ FILE: src/Common.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Common.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_COMMON_H #define GMIC_QT_COMMON_H #include #include #include #include "TimeLogger.h" #ifdef _GMIC_QT_DEBUG_ #define DEBUG_QTIMESTAMP QTime::currentTime().toString("[hh:mm:ss]") #define DEBUG_TIMESTAMP QTime::currentTime().toString("[hh:mm:ss]").toStdString() #define ENTERING std::cerr << DEBUG_TIMESTAMP << " [" << __PRETTY_FUNCTION__ << "] <>" << std::endl #define LEAVING std::cerr << DEBUG_TIMESTAMP << " [" << __PRETTY_FUNCTION__ << "] <>" << std::endl #define TRACE qWarning() << DEBUG_QTIMESTAMP << "[" << __PRETTY_FUNCTION__ << "]" #define TSHOW(V) qWarning() << DEBUG_QTIMESTAMP << "[" << __PRETTY_FUNCTION__ << "]:" << __LINE__ << " " << #V << "=" << (V) #define SHOW(V) qWarning() << #V << "=" << (V) #define STDSHOW(V) std::cerr << #V << " = " << (V) << std::endl #define QSTDSHOW(STR) std::cerr << #STR << " = " << (STR).toStdString() << std::endl #else #define ENTERING while (false) #define LEAVING while (false) #define TRACE \ while (false) \ qWarning() << "" #define TSHOW(V) \ while (false) \ qWarning() << "" #define SHOW(V) \ while (false) \ qWarning() << "" #define STDSHOW(V) \ while (false) \ std::cerr << "" #define QSTDSHOW(STR) \ while (false) \ std::cerr << "" #endif template inline void unused(const T &, ...) {} #ifdef _TIMING_ENABLED_ #define TIMING GmicQt::TimeLogger::getInstance()->step(__PRETTY_FUNCTION__, __LINE__, __FILE__) #else #define TIMING \ if (false) \ std::cout << "" #endif #define QT_VERSION_GTE(MAJOR, MINOR, PATCH) (QT_VERSION >= QT_VERSION_CHECK(MAJOR, MINOR, PATCH)) #if QT_VERSION_GTE(5, 14, 0) #define QT_SKIP_EMPTY_PARTS Qt::SkipEmptyParts #define QT_KEEP_EMPTY_PARTS Qt::KeepEmptyParts #else #define QT_SKIP_EMPTY_PARTS QString::SkipEmptyParts #define QT_KEEP_EMPTY_PARTS QString::KeepEmptyParts #endif #endif // GMIC_QT_COMMON_H ================================================ FILE: src/CroppedActiveLayerProxy.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CroppedActiveLayerProxy.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "CroppedActiveLayerProxy.h" #include #include "Common.h" #include "Host/GmicQtHost.h" #include "gmic.h" namespace GmicQt { double CroppedActiveLayerProxy::_x = -1.0; double CroppedActiveLayerProxy::_y = -1.0; double CroppedActiveLayerProxy::_width = -1.0; double CroppedActiveLayerProxy::_height = -1.0; std::unique_ptr> CroppedActiveLayerProxy::_cachedImage(new gmic_library::gmic_image); void CroppedActiveLayerProxy::get(gmic_library::gmic_image & image, double x, double y, double width, double height) { if ((x != _x) || (y != _y) || (width != _width) || (height != _height)) { update(x, y, width, height); } image = *_cachedImage; } QSize CroppedActiveLayerProxy::getSize(double x, double y, double width, double height) { if ((x != _x) || (y != _y) || (width != _width) || (height != _height)) { update(x, y, width, height); } return QSize(_cachedImage->width(), _cachedImage->height()); } void CroppedActiveLayerProxy::clear() { _cachedImage->assign(); _x = _y = _width = _height = -1.0; } void CroppedActiveLayerProxy::update(double x, double y, double width, double height) { _x = x; _y = y; _width = width; _height = height; gmic_library::gmic_list images; gmic_library::gmic_list imageNames; GmicQtHost::getCroppedImages(images, imageNames, _x, _y, _width, _height, InputMode::Active); if (images.size() > 0) { GmicQtHost::applyColorProfile(images.front()); _cachedImage->swap(images.front()); } else { clear(); } } } // namespace GmicQt ================================================ FILE: src/CroppedActiveLayerProxy.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CroppedActiveLayerProxy.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CROPPEDACTIVELAYERPROXY_H #define GMIC_QT_CROPPEDACTIVELAYERPROXY_H #include #include #include "GmicQt.h" namespace gmic_library { template struct gmic_image; template struct gmic_list; } // namespace gmic_library namespace GmicQt { class CroppedActiveLayerProxy { public: CroppedActiveLayerProxy() = delete; static void get(gmic_library::gmic_image & image, double x, double y, double width, double height); static QSize getSize(double x, double y, double width, double height); static void clear(); private: static void update(double x, double y, double width, double height); static std::unique_ptr> _cachedImage; static double _x; static double _y; static double _width; static double _height; }; } // namespace GmicQt #endif // GMIC_QT_CROPPEDACTIVELAYERPROXY_H ================================================ FILE: src/CroppedImageListProxy.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CroppedImageListProxy.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "CroppedImageListProxy.h" #include #include #include "Common.h" #include "Host/GmicQtHost.h" #include "gmic.h" namespace GmicQt { double CroppedImageListProxy::_x = -1.0; double CroppedImageListProxy::_y = -1.0; double CroppedImageListProxy::_width = -1.0; double CroppedImageListProxy::_height = -1.0; double CroppedImageListProxy::_zoom = 0.0; InputMode CroppedImageListProxy::_inputMode = InputMode::Unspecified; std::unique_ptr> CroppedImageListProxy::_cachedImageList(new gmic_library::gmic_list); std::unique_ptr> CroppedImageListProxy::_cachedImageNames(new gmic_library::gmic_list); void CroppedImageListProxy::get(gmic_library::gmic_list & images, gmic_library::gmic_list & imageNames, double x, double y, double width, double height, InputMode mode, double zoom) { if ((x != _x) || (y != _y) || (width != _width) || (height != _height) || (mode != _inputMode) || (zoom != _zoom)) { update(x, y, width, height, mode, zoom); } images = *_cachedImageList; imageNames = *_cachedImageNames; } void CroppedImageListProxy::update(double x, double y, double width, double height, InputMode mode, double zoom) { _x = x; _y = y; _width = width; _height = height; _inputMode = mode; _zoom = zoom; GmicQtHost::getCroppedImages(*_cachedImageList, *_cachedImageNames, _x, _y, _width, _height, _inputMode); if (zoom < 1.0) { for (unsigned int i = 0; i < _cachedImageList->size(); ++i) { gmic_image & image = (*_cachedImageList)[i]; image.resize(std::round(image.width() * zoom), std::round(image.height() * zoom), 1, -100, 1); } } } void CroppedImageListProxy::clear() { _cachedImageList->assign(); _cachedImageNames->assign(); _x = _y = _width = _height = -1.0; _inputMode = InputMode::Unspecified; _zoom = 0.0; } } // namespace GmicQt ================================================ FILE: src/CroppedImageListProxy.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CroppedImageListProxy.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CROPPEDIMAGELISTPROXY_H #define GMIC_QT_CROPPEDIMAGELISTPROXY_H #include #include "GmicQt.h" namespace gmic_library { template struct gmic_image; template struct gmic_list; } // namespace gmic_library namespace GmicQt { class CroppedImageListProxy { public: CroppedImageListProxy() = delete; static void get(gmic_library::gmic_list & images, gmic_library::gmic_list & imageNames, double x, double y, double width, double height, InputMode mode, double zoom); static void update(double x, double y, double width, double height, InputMode mode, double zoom); static void clear(); private: static std::unique_ptr> _cachedImageList; static std::unique_ptr> _cachedImageNames; static double _x; static double _y; static double _width; static double _height; static InputMode _inputMode; static double _zoom; }; } // namespace GmicQt #endif // GMIC_QT_CROPPEDIMAGELISTPROXY_H ================================================ FILE: src/DialogSettings.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file DialogSettings.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "DialogSettings.h" #include #include #include #include "Common.h" #include "Globals.h" #include "Host/GmicQtHost.h" #include "IconLoader.h" #include "Logger.h" #include "MainWindow.h" #include "Settings.h" #include "Updater.h" #include "ui_dialogsettings.h" namespace GmicQt { DialogSettings::DialogSettings(QWidget * parent) : QDialog(parent), ui(new Ui::DialogSettings) { ui->setupUi(this); setWindowTitle(tr("Settings")); setWindowIcon(parent->windowIcon()); adjustSize(); ui->pbUpdate->setIcon(IconLoader::load("view-refresh")); ui->cbUpdatePeriodicity->addItem(tr("Never"), QVariant(INTERNET_NEVER_UPDATE_PERIODICITY)); ui->cbUpdatePeriodicity->addItem(tr("Daily"), QVariant(ONE_DAY_HOURS)); ui->cbUpdatePeriodicity->addItem(tr("Weekly"), QVariant(ONE_WEEK_HOURS)); ui->cbUpdatePeriodicity->addItem(tr("Every 2 weeks"), QVariant(TWO_WEEKS_HOURS)); ui->cbUpdatePeriodicity->addItem(tr("Monthly"), QVariant(ONE_MONTH_HOURS)); #ifdef _GMIC_QT_DEBUG_ ui->cbUpdatePeriodicity->addItem(tr("At launch (debug)"), QVariant(0)); #endif for (int i = 0; i < ui->cbUpdatePeriodicity->count(); ++i) { if (Settings::updatePeriodicity() == ui->cbUpdatePeriodicity->itemData(i).toInt()) { ui->cbUpdatePeriodicity->setCurrentIndex(i); } } ui->outputMessages->setToolTip(tr("Output messages")); ui->outputMessages->addItem(tr("Quiet (default)"), (int)OutputMessageMode::Quiet); ui->outputMessages->addItem(tr("Verbose (console)"), (int)OutputMessageMode::VerboseConsole); ui->outputMessages->addItem(tr("Verbose (log file)"), (int)OutputMessageMode::VerboseLogFile); ui->outputMessages->addItem(tr("Very verbose (console)"), (int)OutputMessageMode::VeryVerboseConsole); ui->outputMessages->addItem(tr("Very verbose (log file)"), (int)OutputMessageMode::VeryVerboseLogFile); ui->outputMessages->addItem(tr("Debug (console)"), (int)OutputMessageMode::DebugConsole); ui->outputMessages->addItem(tr("Debug (log file)"), (int)OutputMessageMode::DebugLogFile); for (int index = 0; index < ui->outputMessages->count(); ++index) { if (ui->outputMessages->itemData(index) == (int)Settings::outputMessageMode()) { ui->outputMessages->setCurrentIndex(index); break; } } ui->sbPreviewTimeout->setRange(0, 999); ui->rbLeftPreview->setChecked(Settings::previewPosition() == MainWindow::PreviewPosition::Left); ui->rbRightPreview->setChecked(Settings::previewPosition() == MainWindow::PreviewPosition::Right); const bool savedDarkTheme = QSettings().value(DARK_THEME_KEY, GmicQtHost::DarkThemeIsDefault).toBool(); ui->rbDarkTheme->setChecked(savedDarkTheme); ui->rbDefaultTheme->setChecked(!savedDarkTheme); ui->cbNativeColorDialogs->setChecked(Settings::nativeColorDialogs()); ui->cbNativeColorDialogs->setToolTip(tr("Check to use Native/OS color dialog, uncheck to use Qt's")); ui->cbNativeFileDialogs->setChecked(Settings::nativeFileDialogs()); ui->cbNativeFileDialogs->setToolTip(tr("Check to use Native/OS file dialog, uncheck to use Qt's")); ui->cbShowLogos->setChecked(Settings::visibleLogos()); ui->sbPreviewTimeout->setValue(Settings::previewTimeout()); ui->cbPreviewZoom->setChecked(Settings::previewZoomAlwaysEnabled()); ui->cbNotifyFailedUpdate->setChecked(Settings::notifyFailedStartupUpdate()); connect(ui->pbOk, &QPushButton::clicked, this, &DialogSettings::onOk); connect(ui->rbLeftPreview, &QRadioButton::toggled, this, &DialogSettings::onRadioLeftPreviewToggled); connect(ui->pbUpdate, &QPushButton::clicked, this, &DialogSettings::onUpdateClicked); connect(ui->cbUpdatePeriodicity, QOverload::of(&QComboBox::currentIndexChanged), this, &DialogSettings::onUpdatePeriodicityChanged); connect(ui->labelPreviewLeft, &ClickableLabel::clicked, ui->rbLeftPreview, &QRadioButton::click); connect(ui->labelPreviewRight, &ClickableLabel::clicked, ui->rbRightPreview, &QRadioButton::click); connect(ui->cbNativeColorDialogs, &QCheckBox::toggled, this, &DialogSettings::onColorDialogsToggled); connect(ui->cbNativeFileDialogs, &QCheckBox::toggled, this, &DialogSettings::onFileDialogsToggled); connect(Updater::getInstance(), &Updater::updateIsDone, this, &DialogSettings::enableUpdateButton); connect(ui->rbDarkTheme, &QRadioButton::toggled, this, &DialogSettings::onDarkThemeToggled); connect(ui->cbShowLogos, &QCheckBox::toggled, this, &DialogSettings::onVisibleLogosToggled); connect(ui->cbPreviewZoom, &QCheckBox::toggled, this, &DialogSettings::onPreviewZoomToggled); connect(ui->sbPreviewTimeout, QOverload::of(&QSpinBox::valueChanged), this, &DialogSettings::onPreviewTimeoutChange); connect(ui->outputMessages, QOverload::of(&QComboBox::currentIndexChanged), this, &DialogSettings::onOutputMessageModeChanged); connect(ui->cbNotifyFailedUpdate, &QCheckBox::toggled, this, &DialogSettings::onNotifyStartupUpdateFailedToggle); #if QT_VERSION_GTE(6, 0, 0) ui->cbHighDPI->hide(); ui->labelHighDPI->hide(); #else ui->cbHighDPI->setChecked(Settings::highDPIEnabled()); connect(ui->cbHighDPI, &QCheckBox::toggled, this, &DialogSettings::onHighDPIToggled); #endif ui->languageSelector->selectLanguage(Settings::languageCode()); ui->languageSelector->enableFilterTranslation(Settings::filterTranslationEnabled()); if (Settings::darkThemeEnabled()) { QPalette p = ui->cbNativeColorDialogs->palette(); p.setColor(QPalette::Text, Settings::CheckBoxTextColor); p.setColor(QPalette::Base, Settings::CheckBoxBaseColor); ui->cbNativeColorDialogs->setPalette(p); ui->cbNativeFileDialogs->setPalette(p); ui->cbPreviewZoom->setPalette(p); ui->cbUpdatePeriodicity->setPalette(p); ui->rbDarkTheme->setPalette(p); ui->rbDefaultTheme->setPalette(p); ui->rbLeftPreview->setPalette(p); ui->rbRightPreview->setPalette(p); ui->cbShowLogos->setPalette(p); ui->cbNotifyFailedUpdate->setPalette(p); ui->cbHighDPI->setPalette(p); } ui->pbOk->setFocus(); ui->tabWidget->setCurrentIndex(0); } DialogSettings::~DialogSettings() { delete ui; } void DialogSettings::sourcesStatus(bool & modified, bool & internetUpdateRequired) { modified = ui->sources->sourcesModified(internetUpdateRequired); } void DialogSettings::onOk() { done(QDialog::Accepted); } void DialogSettings::done(int r) { QSettings settings; ui->sources->saveSettings(); Settings::save(settings); QDialog::done(r); } void DialogSettings::onVisibleLogosToggled(bool on) { Settings::setVisibleLogos(on); } void DialogSettings::onPreviewTimeoutChange(int value) { Settings::setPreviewTimeout(value); } void DialogSettings::onOutputMessageModeChanged(int) { const OutputMessageMode mode = static_cast(ui->outputMessages->currentData().toInt()); Settings::setOutputMessageMode(mode); Logger::setMode(mode); } void DialogSettings::onPreviewZoomToggled(bool on) { Settings::setPreviewZoomAlwaysEnabled(on); } void DialogSettings::onNotifyStartupUpdateFailedToggle(bool on) { Settings::setNotifyFailedStartupUpdate(on); } void DialogSettings::onHighDPIToggled(bool on) { Settings::setHighDPIEnabled(on); } void DialogSettings::enableUpdateButton() { ui->pbUpdate->setEnabled(true); } void DialogSettings::onRadioLeftPreviewToggled(bool on) { if (on) { Settings::setPreviewPosition(MainWindow::PreviewPosition::Left); } else { Settings::setPreviewPosition(MainWindow::PreviewPosition::Right); } } void DialogSettings::onUpdateClicked() { auto mainWindow = dynamic_cast(parent()); if (mainWindow) { ui->pbUpdate->setEnabled(false); mainWindow->updateFiltersFromSources(0, true); } } void DialogSettings::onDarkThemeToggled(bool on) { QSettings().setValue(DARK_THEME_KEY, on); } void DialogSettings::onUpdatePeriodicityChanged(int) { Settings::setUpdatePeriodicity(ui->cbUpdatePeriodicity->currentData().toInt()); } void DialogSettings::onColorDialogsToggled(bool on) { Settings::setNativeColorDialogs(on); } void DialogSettings::onFileDialogsToggled(bool on) { Settings::setNativeFileDialogs(on); } } // namespace GmicQt ================================================ FILE: src/DialogSettings.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file DialogSettings.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_DIALOGSETTINGS_H #define GMIC_QT_DIALOGSETTINGS_H #include class QCloseEvent; class QSettings; namespace Ui { class DialogSettings; } namespace GmicQt { class DialogSettings : public QDialog { Q_OBJECT public: explicit DialogSettings(QWidget * parent); ~DialogSettings() override; void sourcesStatus(bool & modified, bool & internetUpdateRequired); public slots: void onRadioLeftPreviewToggled(bool); void onDarkThemeToggled(bool on); void onUpdateClicked(); void onOk(); void enableUpdateButton(); void onUpdatePeriodicityChanged(int i); void onColorDialogsToggled(bool); void onFileDialogsToggled(bool); void done(int r) override; void onVisibleLogosToggled(bool); void onPreviewTimeoutChange(int); void onOutputMessageModeChanged(int); void onPreviewZoomToggled(bool); void onNotifyStartupUpdateFailedToggle(bool); void onHighDPIToggled(bool); private: Ui::DialogSettings * ui; }; } // namespace GmicQt #endif // GMIC_QT_DIALOGSETTINGS_H ================================================ FILE: src/FilterGuiDynamismCache.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterGuiDynamismCache.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterGuiDynamismCache.h" #include #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "Logger.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { QHash FilterGuiDynamismCache::_dynamismCache; void FilterGuiDynamismCache::load() { _dynamismCache.clear(); QString jsonFilename = QString("%1%2").arg(gmicConfigPath(true), FILTER_GUI_DYNAMISM_CACHE_FILENAME); QFile jsonFile(jsonFilename); if (!jsonFile.exists()) { return; } if (jsonFile.open(QFile::ReadOnly)) { QJsonDocument jsonDoc; QByteArray allFile = jsonFile.readAll(); if (allFile.startsWith("{")) { // Was created in debug mode jsonDoc = QJsonDocument::fromJson(allFile); } else { jsonDoc = QJsonDocument::fromJson(qUncompress(allFile)); } if (jsonDoc.isNull()) { Logger::warning(QString("Cannot parse ") + jsonFilename); Logger::warning("Last filters parameters are lost!"); } else { if (!jsonDoc.isObject()) { Logger::error(QString("JSON file format is not correct (") + jsonFilename + ")"); } else { QJsonObject documentObject = jsonDoc.object(); QJsonObject::iterator itFilter = documentObject.begin(); while (itFilter != documentObject.end()) { QString hash = itFilter.key(); QString status = itFilter.value().toString(); if (status == "Static") { _dynamismCache.insert(hash, FilterGuiDynamism::Static); } else if (status == "Dynamic") { _dynamismCache.insert(hash, FilterGuiDynamism::Dynamic); } ++itFilter; } } } } else { Logger::error("Cannot open " + jsonFilename); Logger::error("Parameters cannot be restored"); } } void FilterGuiDynamismCache::save() { // JSON Document format // // { // "51d288e6f1c6e531cc61289f17e34d8a": { // "parameters": [ // "6", // "21.06", // "1.36", // "5", // "0" // ], // "in_out_state": { // "InputLayers": 1, // "OutputMessages": 5, // "OutputMode": 100, // "PreviewMode": 100 // } // "visibility_states": [ // 0, // 1, // 2, // 0 // ] // } // } QJsonObject documentObject; QHash::iterator it = _dynamismCache.begin(); while (it != _dynamismCache.end()) { if (it.value() == FilterGuiDynamism::Unknown) { ++it; continue; } QJsonValue status((it.value() == FilterGuiDynamism::Static) ? "Static" : "Dynamic"); documentObject.insert(it.key(), status); ++it; } QJsonDocument jsonDoc(documentObject); QString jsonFilename = QString("%1%2").arg(gmicConfigPath(true), FILTER_GUI_DYNAMISM_CACHE_FILENAME); #ifdef _GMIC_QT_DEBUG_ QByteArray array(jsonDoc.toJson()); #else QByteArray array(qCompress(jsonDoc.toJson(QJsonDocument::Compact))); #endif if (!safelyWrite(array, jsonFilename)) { Logger::error("Cannot write " + jsonFilename); Logger::error("Parameters cannot be saved"); } } void FilterGuiDynamismCache::setValue(const QString & hash, FilterGuiDynamism dynamism) { _dynamismCache.insert(hash, int(dynamism)); } FilterGuiDynamism FilterGuiDynamismCache::getValue(const QString & hash) { auto it = _dynamismCache.find(hash); if (it != _dynamismCache.end()) { return FilterGuiDynamism(it.value()); } return FilterGuiDynamism::Unknown; } void FilterGuiDynamismCache::remove(const QString & hash) { _dynamismCache.remove(hash); } void FilterGuiDynamismCache::clear() { _dynamismCache.clear(); } } // namespace GmicQt ================================================ FILE: src/FilterGuiDynamismCache.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterGuiDynamismCache.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERGUIDYNAMISMCACHE_H #define GMIC_QT_FILTERGUIDYNAMISMCACHE_H #include #include namespace GmicQt { enum FilterGuiDynamism { Unknown = 0, Static = 1, Dynamic = 2 }; class FilterGuiDynamismCache { public: static void load(); static void save(); static void setValue(const QString & hash, FilterGuiDynamism dynamism); static FilterGuiDynamism getValue(const QString & hash); static void remove(const QString & hash); static void clear(); private: static QHash _dynamismCache; }; } // namespace GmicQt #endif // GMIC_QT_FILTERGUIDYNAMISMCACHE_H ================================================ FILE: src/FilterParameters/AbstractParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file AbstractParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/AbstractParameter.h" #include #include #include #include #include #include "Common.h" #include "FilterParameters/BoolParameter.h" #include "FilterParameters/ButtonParameter.h" #include "FilterParameters/ChoiceParameter.h" #include "FilterParameters/ColorParameter.h" #include "FilterParameters/ConstParameter.h" #include "FilterParameters/FileParameter.h" #include "FilterParameters/FloatParameter.h" #include "FilterParameters/FolderParameter.h" #include "FilterParameters/IntParameter.h" #include "FilterParameters/LinkParameter.h" #include "FilterParameters/NoteParameter.h" #include "FilterParameters/PointParameter.h" #include "FilterParameters/SeparatorParameter.h" #include "FilterParameters/TextParameter.h" #include "Logger.h" namespace GmicQt { const QStringList AbstractParameter::NoValueParameters = {"link", "note", "separator"}; AbstractParameter::AbstractParameter(QObject * parent) : QObject(parent) { _update = true; _visibilityState = _defaultVisibilityState = VisibilityState::Visible; _visibilityPropagation = VisibilityPropagation::NoPropagation; _row = -1; _grid = nullptr; _acceptRandom = false; } AbstractParameter::~AbstractParameter() {} bool AbstractParameter::isActualParameter() const { return size() > 0; } bool AbstractParameter::isQuoted() const { return false; } void AbstractParameter::clear() { // Used to clear the value of a ButtonParameter } void AbstractParameter::randomize() { // By default, no effect } void AbstractParameter::addToKeypointList(KeypointList &) const {} void AbstractParameter::extractPositionFromKeypointList(KeypointList &) {} AbstractParameter * AbstractParameter::createFromText(const QString & filterName, const char * text, int & length, QString & error, QObject * parent) { AbstractParameter * result = nullptr; QString line = text; error.clear(); #define IS_OF_TYPE(ptype) QRegularExpression("^[^=]*\\s*=\\s*[_~]{0,2}" ptype, QRegularExpression::CaseInsensitiveOption).match(line).hasMatch() if (IS_OF_TYPE("int")) { result = new IntParameter(parent); } else if (IS_OF_TYPE("float")) { result = new FloatParameter(parent); } else if (IS_OF_TYPE("bool")) { result = new BoolParameter(parent); } else if (IS_OF_TYPE("choice")) { result = new ChoiceParameter(parent); } else if (IS_OF_TYPE("color")) { result = new ColorParameter(parent); } else if (IS_OF_TYPE("separator")) { result = new SeparatorParameter(parent); } else if (IS_OF_TYPE("note")) { result = new NoteParameter(parent); } else if (IS_OF_TYPE("file") || IS_OF_TYPE("filein") || IS_OF_TYPE("fileout")) { result = new FileParameter(parent); } else if (IS_OF_TYPE("folder")) { result = new FolderParameter(parent); } else if (IS_OF_TYPE("text")) { result = new TextParameter(parent); } else if (IS_OF_TYPE("link")) { result = new LinkParameter(parent); } else if (IS_OF_TYPE("value")) { result = new ConstParameter(parent); } else if (IS_OF_TYPE("button")) { result = new ButtonParameter(parent); } else if (IS_OF_TYPE("point")) { result = new PointParameter(parent); } if (result) { if (!result->initFromText(filterName, text, length)) { delete result; result = nullptr; if (!line.isEmpty()) { QRegularExpression nameRegExp("^([^=]*\\s*)="); QRegularExpressionMatch match = nameRegExp.match(line); if (match.hasMatch()) { QString name = match.captured(1); error = "Parameter name: " + name + "\n" + error; } } } } else { if (!line.isEmpty()) { QRegularExpression nameRegExp("^([^=]*\\s*)="); QRegularExpressionMatch match = nameRegExp.match(line); if (match.hasMatch()) { QString name = match.captured(1); QRegularExpression typeRegExp(R"_(^[^=]*\s*=\s*[_~]{0,2}([^\( ]*)\s*\()_"); match = typeRegExp.match(line); if (match.hasMatch()) { error = "Parameter name: " + name + "\n" + "Type <" + match.captured(1) + "> is not recognized\n" + error; } else { error = "Parameter name: " + name + "\n" + error; } } } } return result; } AbstractParameter::VisibilityState AbstractParameter::defaultVisibilityState() const { return _defaultVisibilityState; } void AbstractParameter::hideWidgets() { if (!_grid || (_row == -1)) { return; } for (int col = 0; col < 5; ++col) { QLayoutItem * item = _grid->itemAtPosition(_row, col); if (item) { auto widget = item->widget(); widget->hide(); } } } void AbstractParameter::setVisibilityState(AbstractParameter::VisibilityState state) { if (state == VisibilityState::Unspecified) { setVisibilityState(defaultVisibilityState()); return; } _visibilityState = state; if (!_grid || (_row == -1)) { return; } for (int col = 0; col < 5; ++col) { QLayoutItem * item = _grid->itemAtPosition(_row, col); if (item) { auto widget = item->widget(); switch (state) { case VisibilityState::Visible: widget->setEnabled(true); widget->show(); break; case VisibilityState::Disabled: widget->setEnabled(false); widget->show(); break; case VisibilityState::Hidden: widget->hide(); break; case VisibilityState::Unspecified: // Taken care above (if) break; } } } } AbstractParameter::VisibilityState AbstractParameter::visibilityState() const { return _visibilityState; } AbstractParameter::VisibilityPropagation AbstractParameter::visibilityPropagation() const { return _visibilityPropagation; } bool AbstractParameter::acceptRandom() const { return _acceptRandom; } void AbstractParameter::setTextSelectable(QLabel * label) { Qt::TextInteractionFlags flags = label->textInteractionFlags(); flags.setFlag(Qt::TextSelectableByMouse, true); label->setTextInteractionFlags(flags); } QStringList AbstractParameter::parseText(const QString & type, const char * text, int & length) { QStringList result; const QString str = text; result << str.left(str.indexOf("=")).trimmed(); #ifdef _GMIC_QT_DEBUG_ _debugName = result.back(); #endif QRegularExpression re(QString("^[^=]*\\s*=\\s*([_~]{0,2})%1\\s*(.)").arg(type), QRegularExpression::CaseInsensitiveOption); QRegularExpressionMatch match = re.match(str); const int prefixLength = match.captured(0).toUtf8().size(); _update = !match.captured(1).contains("_"); _acceptRandom = match.captured(1).contains("~"); QString open = match.captured(2); const char * end = nullptr; const char * closing = (open == "(") ? ")" : (open == "{") ? "}" : (open == "[") ? "]" : nullptr; if (!closing) { Logger::error(QString("Parse error in %1 parameter (invalid opening character '%2').").arg(type).arg(open)); length = 1 + prefixLength; return QStringList(); } end = strstr(text + prefixLength, closing); if (!end) { Logger::error(QString("Parse error in %1 parameter (cannot find closing '%2').").arg(type).arg(closing)); length = 1 + prefixLength; return QStringList(); } // QString values = str.mid(prefixLength, -1).left(end - (text + prefixLength)).trimmed(); QString values = QString::fromUtf8(text + prefixLength, int(end - (text + prefixLength))).trimmed(); length = int(1 + end - text); if (text[length] == '_' && text[length + 1] >= '0' && text[length + 1] <= '2') { _defaultVisibilityState = static_cast(text[length + 1] - '0'); _visibilityPropagation = VisibilityPropagation::NoPropagation; switch (text[length + 2]) { case '-': _visibilityPropagation = VisibilityPropagation::Up; length += 3; break; case '+': _visibilityPropagation = VisibilityPropagation::Down; length += 3; break; case '*': _visibilityPropagation = VisibilityPropagation::Down; length += 3; break; default: length += 2; break; } if (NoValueParameters.contains(type)) { Logger::warning(QString("Warning: %1 parameter should not define visibility. Ignored.").arg(result.first())); _defaultVisibilityState = AbstractParameter::VisibilityState::Visible; _visibilityPropagation = VisibilityPropagation::NoPropagation; } } while (text[length] && (text[length] == ',' || QChar(text[length]).isSpace())) { ++length; } result << values; return result; } bool AbstractParameter::matchType(const QString & type, const char * text) const { return QString::fromUtf8(text).contains(QRegularExpression(QString("^[^=]*\\s*=\\s*_?%1\\s*.").arg(type), QRegularExpression::CaseInsensitiveOption)); } void AbstractParameter::notifyIfRelevant() { if (_update) { emit valueChanged(); } } } // namespace GmicQt ================================================ FILE: src/FilterParameters/AbstractParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file AbstractParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_ABSTRACTPARAMETER_H #define GMIC_QT_ABSTRACTPARAMETER_H #include #include class QGridLayout; class QLabel; namespace GmicQt { class KeypointList; class AbstractParameter : public QObject { Q_OBJECT public: AbstractParameter(QObject * parent); virtual ~AbstractParameter() override; bool isActualParameter() const; virtual int size() const = 0; virtual bool addTo(QWidget *, int row) = 0; virtual QString value() const = 0; virtual QString defaultValue() const = 0; virtual bool isQuoted() const; virtual void setValue(const QString & value) = 0; virtual void clear(); virtual void reset() = 0; virtual void randomize(); virtual void addToKeypointList(KeypointList &) const; virtual void extractPositionFromKeypointList(KeypointList &); static AbstractParameter * createFromText(const QString & filterName, const char * text, int & length, QString & error, QObject * parent); virtual bool initFromText(const QString & filterName, const char * text, int & textLength) = 0; enum class VisibilityState { Unspecified = -1, Hidden = 0, Disabled = 1, Visible = 2, }; enum class VisibilityPropagation { NoPropagation = 0, Up = 1, Down = 2, UpDown = 3 }; static const QStringList NoValueParameters; void hideWidgets(); virtual VisibilityState defaultVisibilityState() const; virtual void setVisibilityState(VisibilityState state); VisibilityState visibilityState() const; VisibilityPropagation visibilityPropagation() const; bool acceptRandom() const; signals: void valueChanged(); protected: static void setTextSelectable(QLabel * label); QStringList parseText(const QString & type, const char * text, int & length); bool matchType(const QString & type, const char * text) const; void notifyIfRelevant(); VisibilityState _defaultVisibilityState; QGridLayout * _grid; int _row; #ifdef _GMIC_QT_DEBUG_ QString _debugName; #endif private: bool _update; bool _acceptRandom; VisibilityState _visibilityState; VisibilityPropagation _visibilityPropagation; }; } // namespace GmicQt #endif // GMIC_QT_ABSTRACTPARAMETER_H ================================================ FILE: src/FilterParameters/BoolParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file BoolParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/BoolParameter.h" #include #include #include #include #include #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "Settings.h" namespace GmicQt { BoolParameter::BoolParameter(QObject * parent) // : AbstractParameter(parent), _default(false), _value(false), _checkBox(nullptr), _label(nullptr), _connected(false) { } BoolParameter::~BoolParameter() { delete _checkBox; delete _label; } int BoolParameter::size() const { return 1; } bool BoolParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _checkBox; delete _label; _checkBox = new QCheckBox(widget); _checkBox->setChecked(_value); _label = new QLabel(_name, widget); if (Settings::darkThemeEnabled()) { QPalette p = _checkBox->palette(); p.setColor(QPalette::Text, Settings::CheckBoxTextColor); p.setColor(QPalette::Base, Settings::CheckBoxBaseColor); _checkBox->setPalette(p); } _grid->addWidget(_label, row, 0, 1, 1); _grid->addWidget(_checkBox, row, 1, 1, 2); connectCheckBox(); return true; } QString BoolParameter::value() const { return _value ? QString("1") : QString("0"); } QString BoolParameter::defaultValue() const { return _default ? QString("1") : QString("0"); } void BoolParameter::setValue(const QString & value) { _value = (value == "1"); if (_checkBox) { disconnectCheckBox(); _checkBox->setChecked(_value); connectCheckBox(); } } void BoolParameter::reset() { _checkBox->setChecked(_default); _value = _default; } void BoolParameter::randomize() { if (acceptRandom()) { _value = QRandomGenerator::global()->bounded(0, 2); disconnectCheckBox(); _checkBox->setChecked(_value); connectCheckBox(); } } void BoolParameter::onCheckBoxChanged(bool on) { _value = on; notifyIfRelevant(); } void BoolParameter::connectCheckBox() { if (_connected) { return; } connect(_checkBox, &QCheckBox::toggled, this, &BoolParameter::onCheckBoxChanged); _connected = true; } void BoolParameter::disconnectCheckBox() { if (!_connected) { return; } _checkBox->disconnect(this); _connected = false; } bool BoolParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("bool", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); _value = _default = (list[1].startsWith("true") || list[1].startsWith("1")); return true; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/BoolParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file BoolParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_BOOLPARAMETER_H #define GMIC_QT_BOOLPARAMETER_H #include #include "AbstractParameter.h" class QCheckBox; class QLabel; namespace GmicQt { class BoolParameter : public AbstractParameter { Q_OBJECT public: BoolParameter(QObject * parent); ~BoolParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; public slots: void onCheckBoxChanged(bool); private: void connectCheckBox(); void disconnectCheckBox(); QString _name; bool _default; bool _value; QCheckBox * _checkBox; QLabel * _label; bool _connected; }; } // namespace GmicQt #endif // GMIC_QT_BOOLPARAMETER_H ================================================ FILE: src/FilterParameters/ButtonParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ButtonParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/ButtonParameter.h" #include #include #include #include #include #include #include "FilterTextTranslator.h" #include "HtmlTranslator.h" namespace GmicQt { ButtonParameter::ButtonParameter(QObject * parent) : AbstractParameter(parent), _value(false), _pushButton(nullptr), _alignment(Qt::AlignHCenter) {} ButtonParameter::~ButtonParameter() { delete _pushButton; } int ButtonParameter::size() const { return 1; } bool ButtonParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _pushButton; _pushButton = new QPushButton(_text, widget); _pushButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); _grid->addWidget(_pushButton, row, 0, 1, 3, _alignment); connectButton(); return true; } QString ButtonParameter::value() const { return _value ? QString("1") : QString("0"); } QString ButtonParameter::defaultValue() const { return QString("0"); } void ButtonParameter::setValue(const QString & s) { _value = (s == "1"); } void ButtonParameter::clear() { _value = false; } void ButtonParameter::reset() {} void ButtonParameter::randomize() { if (acceptRandom()) { _value = QRandomGenerator::global()->bounded(0, 2); } } void ButtonParameter::onPushButtonClicked(bool /* checked */) { _value = true; notifyIfRelevant(); } void ButtonParameter::connectButton() { connect(_pushButton, &QPushButton::clicked, this, &ButtonParameter::onPushButtonClicked); } void ButtonParameter::disconnectButton() { _pushButton->disconnect(this); } bool ButtonParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("button", text, textLength); if (list.isEmpty()) { return false; } _text = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QString & alignment = list[1]; if (alignment.isEmpty()) { return true; } float a = alignment.toFloat(); if (a == 0.0f) { _alignment = Qt::AlignLeft; } else if (a == 1.0f) { _alignment = Qt::AlignRight; } else { _alignment = Qt::AlignCenter; } return true; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/ButtonParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ButtonParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_BUTTONPARAMETER_H #define GMIC_QT_BUTTONPARAMETER_H #include #include #include "AbstractParameter.h" class QWidget; class QPushButton; class QLabel; namespace GmicQt { class ButtonParameter : public AbstractParameter { Q_OBJECT public: ButtonParameter(QObject * parent); ~ButtonParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString &) override; void clear() override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; public slots: void onPushButtonClicked(bool); private: void connectButton(); void disconnectButton(); bool _value; QString _text; QPushButton * _pushButton; Qt::AlignmentFlag _alignment; }; } // namespace GmicQt #endif // GMIC_QT_BUTTONPARAMETER_H ================================================ FILE: src/FilterParameters/ChoiceParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ChoiceParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/ChoiceParameter.h" #include #include #include #include #include #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "Logger.h" namespace GmicQt { ChoiceParameter::ChoiceParameter(QObject * parent) : AbstractParameter(parent), _default(0), _value(0), _label(nullptr), _comboBox(nullptr), _connected(false) {} ChoiceParameter::~ChoiceParameter() { delete _comboBox; delete _label; } int ChoiceParameter::size() const { return 1; } bool ChoiceParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _comboBox; delete _label; _comboBox = new QComboBox(widget); _comboBox->addItems(_choices); _comboBox->setCurrentIndex(_value); _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_comboBox, row, 1, 1, 2); connectComboBox(); return true; } QString ChoiceParameter::value() const { return QString("%1").arg(_comboBox->currentIndex()); } QString ChoiceParameter::defaultValue() const { return QString("%1").arg(_default); } void ChoiceParameter::setValue(const QString & value) { bool ok = true; const int k = value.toInt(&ok); if (!ok || (k < 0)) { return; } if (_comboBox && (k >= _comboBox->count())) { return; } _value = k; if (_comboBox) { disconnectComboBox(); _comboBox->setCurrentIndex(_value); connectComboBox(); } } void ChoiceParameter::reset() { disconnectComboBox(); _comboBox->setCurrentIndex(_default); _value = _default; connectComboBox(); } void ChoiceParameter::randomize() { if (acceptRandom()) { disconnectComboBox(); _value = QRandomGenerator::global()->bounded(0, _comboBox->count()); _comboBox->setCurrentIndex(_value); connectComboBox(); } } bool ChoiceParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QStringList list = parseText("choice", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); _choices = list[1].split(QChar(',')); bool ok; if (_choices.isEmpty()) { return false; } _default = _choices[0].toInt(&ok); if (!ok) { _default = 0; } else { _choices.pop_front(); } QList::iterator it = _choices.begin(); while (it != _choices.end()) { *it = it->trimmed().remove(QRegularExpression("^\"")).remove(QRegularExpression("\"$")); *it = HtmlTranslator::html2txt(FilterTextTranslator::translate(*it, filterName)); ++it; } _value = _default; return true; } void ChoiceParameter::onComboBoxIndexChanged(int i) { _value = i; notifyIfRelevant(); } void ChoiceParameter::connectComboBox() { if (_connected) { return; } connect(_comboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &ChoiceParameter::onComboBoxIndexChanged); _connected = true; } void ChoiceParameter::disconnectComboBox() { if (!_connected) { return; } _comboBox->disconnect(this); _connected = false; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/ChoiceParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ChoiceParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CHOICEPARAMETER_H #define GMIC_QT_CHOICEPARAMETER_H #include #include #include "AbstractParameter.h" class QComboBox; class QLabel; namespace GmicQt { class ChoiceParameter : public AbstractParameter { Q_OBJECT public: ChoiceParameter(QObject * parent); ~ChoiceParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString &) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; public slots: void onComboBoxIndexChanged(int); private: void connectComboBox(); void disconnectComboBox(); QString _name; int _default; int _value; QLabel * _label; QComboBox * _comboBox; QList _choices; bool _connected; }; } // namespace GmicQt #endif // GMIC_QT_CHOICEPARAMETER_H ================================================ FILE: src/FilterParameters/ColorParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ColorParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/ColorParameter.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "Logger.h" #include "Settings.h" namespace GmicQt { ColorParameter::ColorParameter(QObject * parent) // : AbstractParameter(parent), // _default(0, 0, 0, 0), // _value(_default), // _alphaChannel(false), // _label(nullptr), // _button(nullptr), // _dialog(nullptr), // _size(-1) { } ColorParameter::~ColorParameter() { delete _button; delete _label; delete _dialog; } int ColorParameter::size() const { return _size; } bool ColorParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _button; delete _label; _button = new QPushButton(widget); _button->setText(""); QFontMetrics fm(widget->font()); QRect r = fm.boundingRect("CLR"); _pixmap = QPixmap(r.width(), r.height()); _button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); _button->setIconSize(_pixmap.size()); updateButtonColor(); _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_button, row, 1, 1, 1); connect(_button, &QPushButton::clicked, this, &ColorParameter::onButtonPressed); return true; } QString ColorParameter::value() const { const QColor & c = _value; if (_alphaChannel) { return QString("%1,%2,%3,%4").arg(c.red()).arg(c.green()).arg(c.blue()).arg(c.alpha()); } return QString("%1,%2,%3").arg(c.red()).arg(c.green()).arg(c.blue()); } QString ColorParameter::defaultValue() const { const QColor & c = _default; if (_alphaChannel) { return QString("%1,%2,%3,%4").arg(c.red()).arg(c.green()).arg(c.blue()).arg(c.alpha()); } return QString("%1,%2,%3").arg(c.red()).arg(c.green()).arg(c.blue()); } void ColorParameter::setValue(const QString & value) { QStringList list = value.split(","); if ((list.size() != 3) && (list.size() != 4)) { return; } bool ok = false; const int red = list[0].toInt(&ok); if (!ok) { Logger::warning(QString("ColorParameter::setValue(\"%1\"): bad red channel").arg(value)); } const int green = list[1].toInt(&ok); if (!ok) { Logger::warning(QString("ColorParameter::setValue(\"%1\"): bad green channel").arg(value)); } const int blue = list[2].toInt(&ok); if (!ok) { Logger::warning(QString("ColorParameter::setValue(\"%1\"): bad blue channel").arg(value)); } if ((list.size() == 4) && _alphaChannel) { const int alpha = list[3].toInt(&ok); if (!ok) { Logger::warning(QString("ColorParameter::setValue(\"%1\"): bad alpha channel").arg(value)); } _value = QColor(red, green, blue, alpha); } else { _value = QColor(red, green, blue); } if (_button) { updateButtonColor(); } } void ColorParameter::reset() { _value = _default; updateButtonColor(); } void ColorParameter::randomize() { if (acceptRandom()) { auto generator = QRandomGenerator::global(); _value.setRgb(generator->bounded(0, 256), // generator->bounded(0, 256), // generator->bounded(0, 256), // _alphaChannel ? generator->bounded(164, 256) : 255); updateButtonColor(); } } bool ColorParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("color", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); // color(#e9cc00) and color(#e9cc00ff) const QString trimmed = list[1].trimmed(); if (QRegularExpression("^#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})$").match(trimmed).hasMatch()) { _default = QColor(trimmed.left(7)); if (trimmed.length() == 9) { _alphaChannel = true; _default.setAlpha(trimmed.right(2).toInt(nullptr, 16)); } else { _alphaChannel = false; } _size = 3 + _alphaChannel; _value = _default; return true; } // color(120,100,10) and color(120,100,10,128) QList channels = list[1].split(","); const int n = channels.size(); bool okR = true, okG = true, okB = true, okA = true; int r = (n > 0) ? channels[0].toInt(&okR) : 0; int g = (n >= 2) ? channels[1].toInt(&okG) : r; int b = (n >= 3) ? channels[2].toInt(&okB) : (n == 1) ? r : 0; if (channels.size() == 4) { int a = channels[3].toInt(&okA); _default = _value = QColor(r, g, b, a); _alphaChannel = true; } else { _default = _value = QColor(r, g, b); } if (okR && okG && okB && okA) { _size = channels.size(); return true; } return false; } void ColorParameter::onButtonPressed() { QColor color = QColorDialog::getColor(_value, QApplication::activeWindow(), tr("Select color"), (Settings::nativeColorDialogs() ? QColorDialog::ColorDialogOptions() : QColorDialog::DontUseNativeDialog) | (_alphaChannel ? QColorDialog::ShowAlphaChannel : QColorDialog::ColorDialogOptions())); if (color.isValid()) { _value = color; updateButtonColor(); notifyIfRelevant(); } } void ColorParameter::updateButtonColor() { QPainter painter(&_pixmap); QColor color(_value); if (_alphaChannel) { painter.drawImage(0, 0, QImage(":resources/transparency.png")); } painter.setBrush(color); painter.setPen(Qt::black); painter.drawRect(0, 0, _pixmap.width() - 1, _pixmap.height() - 1); _button->setIcon(_pixmap); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/ColorParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ColorParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_COLORPARAMETER_H #define GMIC_QT_COLORPARAMETER_H #include #include #include #include #include "AbstractParameter.h" class QSpinBox; class QSlider; class QLabel; class QPushButton; namespace GmicQt { class ColorParameter : public AbstractParameter { Q_OBJECT public: ColorParameter(QObject * parent); ~ColorParameter() override; int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; public slots: void onButtonPressed(); private: void updateButtonColor(); QString _name; QColor _default; QColor _value; bool _alphaChannel; QLabel * _label; QPushButton * _button; QPixmap _pixmap; QColorDialog * _dialog; int _size; }; } // namespace GmicQt #endif // GMIC_QT_COLORPARAMETER_H ================================================ FILE: src/FilterParameters/ConstParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ConstParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/ConstParameter.h" #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "Misc.h" namespace GmicQt { ConstParameter::ConstParameter(QObject * parent) : AbstractParameter(parent) {} int ConstParameter::size() const { return 1; } ConstParameter::~ConstParameter() = default; bool ConstParameter::addTo(QWidget *, int) { return false; } bool ConstParameter::isQuoted() const { return true; } QString ConstParameter::value() const { return _value; } QString ConstParameter::defaultValue() const { return _default; } void ConstParameter::setValue(const QString & value) { _value = value; } void ConstParameter::reset() { _value = _default; } bool ConstParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QStringList list = parseText("value", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); _value = _default = unescaped(unquoted(list[1])); return true; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/ConstParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ConstParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CONSTPARAMETER_H #define GMIC_QT_CONSTPARAMETER_H #include "AbstractParameter.h" class QLabel; namespace GmicQt { class ConstParameter : public AbstractParameter { Q_OBJECT public: ConstParameter(QObject * parent); ~ConstParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; bool isQuoted() const override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; private: QString _name; QString _default; QString _value; }; } // namespace GmicQt #endif // GMIC_QT_CONSTPARAMETER_H ================================================ FILE: src/FilterParameters/CustomDoubleSpinBox.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CustomDoubleSpinBox.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/CustomDoubleSpinBox.h" #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Settings.h" namespace GmicQt { CustomDoubleSpinBox::CustomDoubleSpinBox(QWidget * parent, float min, float max) : QDoubleSpinBox(parent) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); const int decimals = std::max(2, MAX_DIGITS - std::max(integerPartDigitCount(min), integerPartDigitCount(max))); setDecimals(decimals); setRange(min, max); QDoubleSpinBox * dummy = new QDoubleSpinBox(this); dummy->hide(); dummy->setRange(min, max); dummy->setDecimals(decimals); _sizeHint = dummy->sizeHint(); _minimumSizeHint = dummy->minimumSizeHint(); delete dummy; connect(this, &QDoubleSpinBox::editingFinished, [this]() { _unfinishedKeyboardEditing = false; }); } CustomDoubleSpinBox::~CustomDoubleSpinBox() {} QString CustomDoubleSpinBox::textFromValue(double value) const { QString text = QString::number(value, 'g', MAX_DIGITS); if (text.contains('e') || text.contains('E')) { text = QString::number(value, 'f', decimals()); if (text.contains(Settings::DecimalPoint)) { while (text.endsWith(QChar('0'))) { text.chop(1); } if (text.endsWith(Settings::DecimalPoint)) { text.chop(Settings::DecimalPoint.length()); } } } return text; } QSize CustomDoubleSpinBox::sizeHint() const { return _sizeHint; } QSize CustomDoubleSpinBox::minimumSizeHint() const { return _minimumSizeHint; } void CustomDoubleSpinBox::keyPressEvent(QKeyEvent * event) { QString text = event->text(); if ((text.length() == 1 && text[0].isDigit()) || // (text == Settings::DecimalPoint) || // (text == Settings::NegativeSign) || // (text == Settings::GroupSeparator) || // (event->key() == Qt::Key_Backspace) || // (event->key() == Qt::Key_Delete)) { _unfinishedKeyboardEditing = true; } QDoubleSpinBox::keyPressEvent(event); } int CustomDoubleSpinBox::integerPartDigitCount(float value) { QString text = QString::number(static_cast(value), 'f', 0); if (text[0] == QChar('-')) { text.remove(0, 1); } return text.length(); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/CustomDoubleSpinBox.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CustomDoubleSpinBox.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CUSTOMDOUBLESPINBOX_H #define GMIC_QT_CUSTOMDOUBLESPINBOX_H #include #include class QShowEvent; class QResizeEvent; namespace GmicQt { class CustomDoubleSpinBox : public QDoubleSpinBox { Q_OBJECT public: CustomDoubleSpinBox(QWidget * parent, float min, float max); ~CustomDoubleSpinBox() override; QString textFromValue(double value) const override; inline bool unfinishedKeyboardEditing() const; protected: QSize sizeHint() const override; QSize minimumSizeHint() const override; void keyPressEvent(QKeyEvent *) override; signals: void keyboardNumericalInputOngoing(); private: QSize _sizeHint; QSize _minimumSizeHint; bool _unfinishedKeyboardEditing = false; static const int MAX_DIGITS = 5; static int integerPartDigitCount(float value); }; bool CustomDoubleSpinBox::unfinishedKeyboardEditing() const { return _unfinishedKeyboardEditing; } } // namespace GmicQt #endif // GMIC_QT_CUSTOMDOUBLESPINBOX_H ================================================ FILE: src/FilterParameters/CustomSpinBox.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CustomSpinBox.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/CustomSpinBox.h" #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Settings.h" namespace GmicQt { CustomSpinBox::CustomSpinBox(QWidget * parent, int min, int max) : QSpinBox(parent) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); setRange(min, max); QSpinBox * dummy = new QSpinBox(this); dummy->hide(); dummy->setRange(min, max); _sizeHint = dummy->sizeHint(); _minimumSizeHint = dummy->minimumSizeHint(); delete dummy; connect(this, &QSpinBox::editingFinished, [this]() { _unfinishedKeyboardEditing = false; }); } CustomSpinBox::~CustomSpinBox() {} QString CustomSpinBox::textFromValue(int value) const { return QString::number(value); } QSize CustomSpinBox::sizeHint() const { return _sizeHint; } QSize CustomSpinBox::minimumSizeHint() const { return _minimumSizeHint; } void CustomSpinBox::keyPressEvent(QKeyEvent * event) { QString text = event->text(); if ((text.length() == 1 && text[0].isDigit()) || // (text == Settings::NegativeSign) || // (text == Settings::GroupSeparator) || // (event->key() == Qt::Key_Backspace) || // (event->key() == Qt::Key_Delete)) { _unfinishedKeyboardEditing = true; } QSpinBox::keyPressEvent(event); } int CustomSpinBox::integerPartDigitCount(float value) { QString text = QString::number(static_cast(value), 'f', 0); if (text[0] == QChar('-')) { text.remove(0, 1); } return text.length(); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/CustomSpinBox.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file CustomSpinBox.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_CUSTOMSPINBOX_H #define GMIC_QT_CUSTOMSPINBOX_H #include #include class QShowEvent; class QResizeEvent; namespace GmicQt { class CustomSpinBox : public QSpinBox { Q_OBJECT public: CustomSpinBox(QWidget * parent, int min, int max); ~CustomSpinBox() override; QString textFromValue(int value) const override; inline bool unfinishedKeyboardEditing() const; protected: QSize sizeHint() const override; QSize minimumSizeHint() const override; void keyPressEvent(QKeyEvent *) override; signals: void keyboardNumericalInputOngoing(); private: QSize _sizeHint; QSize _minimumSizeHint; bool _unfinishedKeyboardEditing = false; static const int MAX_DIGITS = 5; static int integerPartDigitCount(float value); }; bool CustomSpinBox::unfinishedKeyboardEditing() const { return _unfinishedKeyboardEditing; } } // namespace GmicQt #endif // GMIC_QT_CUSTOMSPINBOX_H ================================================ FILE: src/FilterParameters/FileParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FileParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/FileParameter.h" #include #include #include #include #include #include #include #include #include #include #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "IconLoader.h" #include "Settings.h" namespace GmicQt { FileParameter::FileParameter(QObject * parent) : AbstractParameter(parent), _label(nullptr), _button(nullptr), _dialogMode(DialogMode::InputOutput) {} FileParameter::~FileParameter() { delete _label; delete _button; } int FileParameter::size() const { return 1; } bool FileParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _label; delete _button; QString buttonText; if (_value.isEmpty()) { buttonText = "..."; } else { int w = widget->contentsRect().width() / 3; QFontMetrics fm(widget->font()); buttonText = fm.elidedText(QFileInfo(_value).fileName(), Qt::ElideRight, w); } _button = new QPushButton(buttonText, widget); _button->setIcon(IconLoader::load("document-open")); _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_button, row, 1, 1, 2); connect(_button, &QPushButton::clicked, this, &FileParameter::onButtonPressed); return true; } QString FileParameter::value() const { return _value; } QString FileParameter::defaultValue() const { return _default; } void FileParameter::setValue(const QString & value) { _value = value; if (_button) { if (_value.isEmpty()) { _button->setText("..."); } else { int width = _button->contentsRect().width() - 10; QFontMetrics fm(_button->font()); _button->setText(fm.elidedText(QFileInfo(_value).fileName(), Qt::ElideRight, width)); } } } void FileParameter::reset() { setValue(_default); } bool FileParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list; if (matchType("filein", text)) { list = parseText("filein", text, textLength); _dialogMode = DialogMode::Input; } else if (matchType("fileout", text)) { list = parseText("fileout", text, textLength); _dialogMode = DialogMode::Output; } else { list = parseText("file", text, textLength); _dialogMode = DialogMode::InputOutput; } if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QRegularExpression re("^\"(.*)\"$"); QRegularExpressionMatch match = re.match(list[1]); if (match.hasMatch()) { list[1] = match.captured(1); } _default = _value = list[1]; return true; } bool FileParameter::isQuoted() const { return true; } void FileParameter::onButtonPressed() { QString folder; if (_value.isEmpty()) { folder = Settings::FileParameterDefaultPath; } else { folder = QFileInfo(_value).path(); } if (!QFileInfo(folder).isDir()) { folder = QDir::homePath(); } QString filename; const QFileDialog::Options options = Settings::nativeFileDialogs() ? QFileDialog::Options() : QFileDialog::DontUseNativeDialog; switch (_dialogMode) { case DialogMode::Input: filename = QFileDialog::getOpenFileName(QApplication::topLevelWidgets().at(0), tr("Select a file"), folder, QString(), nullptr, options); break; case DialogMode::Output: filename = QFileDialog::getSaveFileName(QApplication::topLevelWidgets().at(0), tr("Select a file"), folder, QString(), nullptr, options); break; case DialogMode::InputOutput: { QFileDialog dialog(dynamic_cast(parent()), tr("Select a file"), folder, QString()); dialog.setOptions(QFileDialog::DontConfirmOverwrite | options); dialog.setFileMode(QFileDialog::AnyFile); if (!_value.isEmpty()) { dialog.selectFile(_value); } dialog.exec(); QStringList filenames = dialog.selectedFiles(); if (!filenames.isEmpty() && !QFileInfo(filenames.front()).isDir()) { filename = filenames.front(); } } break; } if (filename.isEmpty()) { _value.clear(); _button->setText("..."); } else { _value = filename; QFileInfo info(filename); Settings::FileParameterDefaultPath = info.path(); int w = _button->contentsRect().width() - 10; QFontMetrics fm(_button->font()); _button->setText(fm.elidedText(QFileInfo(_value).fileName(), Qt::ElideRight, w)); } notifyIfRelevant(); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/FileParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FileParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILEPARAMETER_H #define GMIC_QT_FILEPARAMETER_H #include #include "AbstractParameter.h" class QLabel; class QPushButton; namespace GmicQt { class FileParameter : public AbstractParameter { Q_OBJECT public: FileParameter(QObject * parent); ~FileParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; bool isQuoted() const override; public slots: void onButtonPressed(); private: enum class DialogMode { Input, Output, InputOutput }; QString _name; QString _default; QString _value; QLabel * _label; QPushButton * _button; DialogMode _dialogMode; }; } // namespace GmicQt #endif // GMIC_QT_FILEPARAMETER_H ================================================ FILE: src/FilterParameters/FilterParametersWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterParametersWidget.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/FilterParametersWidget.h" #include #include #include #include #include "Common.h" #include "FilterParameters/AbstractParameter.h" #include "FilterParameters/PointParameter.h" #include "Logger.h" #include "Misc.h" namespace GmicQt { FilterParametersWidget::FilterParametersWidget(QWidget * parent) : QWidget(parent), _valueString(""), _labelNoParams(nullptr), _paddingWidget(nullptr) { delete layout(); auto grid = new QGridLayout(this); grid->setRowStretch(1, 2); _labelNoParams = new QLabel(tr("Select a filter"), this); _labelNoParams->setAlignment(Qt::AlignHCenter | Qt::AlignCenter); grid->addWidget(_labelNoParams, 0, 0, 4, 3); _actualParametersCount = 0; _acceptRandom = false; _filterHash.clear(); _hasKeypoints = false; } QVector FilterParametersWidget::buildParameters(const QString & filterName, // const QString & parameters, // QObject * parent, // int * actualParameterCount, // bool * acceptRandom, // QString * error) { QVector result; QByteArray rawText = parameters.toUtf8(); const char * cstr = rawText.constData(); int length = 0; int localActualParameterCount = 0; bool localAcceptRandom = false; QString localError; if (acceptRandom) { *acceptRandom = false; } AbstractParameter * parameter; do { parameter = AbstractParameter::createFromText(filterName, cstr, length, localError, parent); if (parameter) { result.push_back(parameter); if (parameter->isActualParameter()) { localActualParameterCount += 1; } if (parameter->acceptRandom()) { localAcceptRandom = true; } } cstr += length; } while (parameter && localError.isEmpty()); if (!localError.isEmpty()) { for (AbstractParameter * p : result) { delete p; } result.clear(); localError = QString("Parameter #%1\n%2").arg(localActualParameterCount + 1).arg(localError); localActualParameterCount = 0; } if (actualParameterCount) { *actualParameterCount = localActualParameterCount; } if (acceptRandom) { *acceptRandom = localAcceptRandom; } if (error) { *error = localError; } return result; } QStringList FilterParametersWidget::defaultParameterList(const QVector & parameters, // QVector * quoted) { if (quoted) { quoted->clear(); } QStringList result; for (AbstractParameter * parameter : parameters) { if (parameter->isActualParameter()) { result.push_back(parameter->defaultValue()); if (quoted) { quoted->push_back(parameter->isQuoted()); } } } return result; } QStringList FilterParametersWidget::defaultParameterList(const QString & parametersDefinition, // QString * error, // QVector * quoted, // QVector * size) { if (error) { error->clear(); } QObject parent; QString localError; QVector v = FilterParametersWidget::buildParameters("Dummy filter", parametersDefinition, &parent, nullptr, nullptr, &localError); if (!localError.isEmpty()) { if (error) { *error = localError; } return QStringList(); } QStringList result = defaultParameterList(v, quoted); if (size) { *size = parameterSizes(v); } return result; } QVector FilterParametersWidget::quotedParameters(const QVector & parameters) { QVector result; for (AbstractParameter * p : parameters) { result.push_back(p->isQuoted()); } return result; } QVector FilterParametersWidget::parameterSizes(const QVector & parameters) { QVector result; for (AbstractParameter * p : parameters) { if (p->isActualParameter()) { result.push_back(p->size()); } } return result; } bool FilterParametersWidget::build(const QString & name, const QString & hash, const QString & parameters, const QList & values, const QList & visibilityStates) { _filterName = name; _filterHash = hash; hide(); clear(); delete layout(); auto grid = new QGridLayout(this); grid->setRowStretch(1, 2); PointParameter::resetDefaultColorIndex(); // Build parameters and count actual ones QString error; _parameters = buildParameters(_filterName, parameters, this, &_actualParametersCount, &_acceptRandom, &error); _quotedParameters = quotedParameters(_parameters); // Restore saved values if ((!values.isEmpty()) && (_actualParametersCount == values.size())) { QVector::iterator it = _parameters.begin(); QList::const_iterator itValue = values.cbegin(); while (it != _parameters.end()) { if ((*it)->isActualParameter()) { (*it)->setValue(*itValue); ++itValue; } ++it; } } // Add to widget and connect int row = 0; QVector::iterator it = _parameters.begin(); while (it != _parameters.end()) { AbstractParameter * parameter = *it; if (parameter->addTo(this, row)) { parameter->hideWidgets(); grid->setRowStretch(row, 0); ++row; } connect(parameter, &AbstractParameter::valueChanged, this, &FilterParametersWidget::updateValueStringAndNotify); ++it; } if (_actualParametersCount != visibilityStates.size()) { Logger::warning(QString("Parameters/SetVisibilities: Wrong number of values %1 (expecting %2)").arg(visibilityStates.size()).arg(_actualParametersCount)); } if (_actualParametersCount != visibilityStates.size()) { applyDefaultVisibilityStates(); } else { setVisibilityStates(visibilityStates); } // Retrieve a dummy keypoint list KeypointList keypoints; it = _parameters.begin(); while (it != _parameters.end()) { (*it)->addToKeypointList(keypoints); ++it; } _hasKeypoints = !keypoints.isEmpty(); if (row > 0) { delete _labelNoParams; _labelNoParams = nullptr; _paddingWidget = new QWidget(this); _paddingWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); grid->addWidget(_paddingWidget, row++, 0, 1, 3); grid->setRowStretch(row - 1, 1); } else { if (error.isEmpty()) { _labelNoParams = new QLabel(tr("No parameters"), this); _labelNoParams->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); _labelNoParams->setTextFormat(Qt::RichText); } else { QString errorMessage; errorMessage += tr("Error parsing filter parameters\n\n"); QString text = error; if (text.size() > 250) { text.truncate(250); text += "..."; } errorMessage += text; _labelNoParams = new QLabel(errorMessage, this); _labelNoParams->setToolTip(text); _labelNoParams->setWordWrap(true); _labelNoParams->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); _labelNoParams->setTextFormat(Qt::PlainText); } grid->addWidget(_labelNoParams, 0, 0, 4, 3); } updateValueString(false); show(); return error.isEmpty(); } void FilterParametersWidget::setNoFilter(const QString & message) { clear(); delete layout(); auto grid = new QGridLayout(this); grid->setRowStretch(1, 2); if (message.isEmpty()) { _labelNoParams = new QLabel(tr("Select a filter"), this); } else { _labelNoParams = new QLabel(QString("%1").arg(message), this); } _labelNoParams->setAlignment(Qt::AlignHCenter | Qt::AlignCenter); grid->addWidget(_labelNoParams, 0, 0, 4, 3); _valueString.clear(); _filterHash.clear(); } FilterParametersWidget::~FilterParametersWidget() { clear(); } const QString & FilterParametersWidget::valueString() const { return _valueString; } QStringList FilterParametersWidget::valueStringList() const { QStringList list; for (AbstractParameter * param : _parameters) { if (param->isActualParameter()) { list.append(param->value()); } } return list; } void FilterParametersWidget::setValues(const QStringList & list, bool notify) { if (list.isEmpty()) { return; } if (_actualParametersCount != list.size()) { Logger::warning(QString("Parameters/SetValues: Wrong number of values %1 (expecting %2)").arg(list.size()).arg(_actualParametersCount)); return; } auto itValue = list.begin(); for (AbstractParameter * param : _parameters) { if (param->isActualParameter()) { param->setValue(*itValue++); } } updateValueString(notify); } void FilterParametersWidget::setVisibilityStates(QList states) { if (states.isEmpty()) { states = defaultVisibilityStates(); } if (_actualParametersCount != states.size()) { Logger::warning(QString("Parameters/SetVisibilities: Wrong number of values %1 (expecting %2)").arg(states.size()).arg(_actualParametersCount)); return; } // Fill a table of new states for all parameters, including no-value ones QVector newVisibilityStates(_parameters.size(), AbstractParameter::VisibilityState::Unspecified); { auto itState = states.begin(); for (int n = 0; n < _parameters.size(); ++n) { AbstractParameter * parameter = _parameters[n]; if (parameter->isActualParameter()) { newVisibilityStates[n] = static_cast(*itState); ++itState; } } } // Propagate if necessary for (int n = 0; n < _parameters.size(); ++n) { AbstractParameter * parameter = _parameters[n]; if (parameter->isActualParameter()) { AbstractParameter::VisibilityState state = newVisibilityStates[n]; if (state == AbstractParameter::VisibilityState::Unspecified) { state = parameter->defaultVisibilityState(); } if ((parameter->visibilityPropagation() == AbstractParameter::VisibilityPropagation::Up) || // (parameter->visibilityPropagation() == AbstractParameter::VisibilityPropagation::UpDown)) { int i = n - 1; while ((i >= 0) && !_parameters[i]->isActualParameter()) { newVisibilityStates[i--] = state; } } if ((parameter->visibilityPropagation() == AbstractParameter::VisibilityPropagation::Down) || // (parameter->visibilityPropagation() == AbstractParameter::VisibilityPropagation::UpDown)) { int i = n + 1; while ((i < _parameters.size()) && !_parameters[i]->isActualParameter()) { newVisibilityStates[i++] = state; } } } } for (int n = 0; n < _parameters.size(); ++n) { AbstractParameter * const parameter = _parameters[n]; parameter->setVisibilityState(newVisibilityStates[n]); } } QList FilterParametersWidget::visibilityStates() { QList states; for (const AbstractParameter * const param : _parameters) { if (param->isActualParameter()) { states.push_back((int)param->visibilityState()); } } return states; } QList FilterParametersWidget::defaultVisibilityStates() { QList states; for (AbstractParameter * param : _parameters) { if (param->isActualParameter()) { states.push_back((int)param->defaultVisibilityState()); } } return states; } void FilterParametersWidget::reset(bool notify) { for (AbstractParameter * param : _parameters) { if (param->isActualParameter()) { param->reset(); } } applyDefaultVisibilityStates(); updateValueString(notify); } void FilterParametersWidget::randomize() { for (AbstractParameter * param : _parameters) { if (param->isActualParameter()) { param->randomize(); } } updateValueString(false); } QString FilterParametersWidget::filterName() const { return _filterName; } int FilterParametersWidget::actualParametersCount() const { return _actualParametersCount; } int FilterParametersWidget::acceptRandom() const { return _acceptRandom; } QString FilterParametersWidget::filterHash() const { return _filterHash; } QString FilterParametersWidget::valueString(const QVector & parameters) { QString result; bool firstParameter = true; for (AbstractParameter * parameter : parameters) { if (parameter->isActualParameter()) { QString str = parameter->isQuoted() ? quotedString(parameter->value()) : parameter->value(); if (!str.isNull()) { if (!firstParameter) { result += ","; } result += str; firstParameter = false; } } } return result; } QString FilterParametersWidget::defaultValueString(const QVector & parameters) { QString result; bool firstParameter = true; for (AbstractParameter * parameter : parameters) { if (parameter->isActualParameter()) { QString str = parameter->isQuoted() ? quotedString(parameter->defaultValue()) : parameter->defaultValue(); if (!str.isNull()) { if (!firstParameter) { result += ","; } result += str; firstParameter = false; } } } return result; } void FilterParametersWidget::updateValueString(bool notify) { _valueString = valueString(_parameters); if (notify) { emit valueChanged(); } } void FilterParametersWidget::updateValueStringAndNotify() { updateValueString(true); } void FilterParametersWidget::clear() { QVector::iterator it = _parameters.begin(); while (it != _parameters.end()) { delete *it; ++it; } _parameters.clear(); _actualParametersCount = 0; delete _labelNoParams; _labelNoParams = nullptr; delete _paddingWidget; _paddingWidget = nullptr; } void FilterParametersWidget::applyDefaultVisibilityStates() { setVisibilityStates(defaultVisibilityStates()); // Will propagate } void FilterParametersWidget::clearButtonParameters() { for (AbstractParameter * param : _parameters) { if (param->isActualParameter()) { param->clear(); } } updateValueString(false); } KeypointList FilterParametersWidget::keypoints() const { KeypointList list; if (!_hasKeypoints) { return list; } QVector::const_iterator it = _parameters.begin(); while (it != _parameters.end()) { (*it)->addToKeypointList(list); ++it; } return list; } void FilterParametersWidget::setKeypoints(KeypointList list, bool notify) { Q_ASSERT_X((list.isEmpty() || _hasKeypoints), __PRETTY_FUNCTION__, "Keypoint list mismatch"); if (!_hasKeypoints) { return; } QVector::const_iterator it = _parameters.begin(); while (it != _parameters.end()) { (*it)->extractPositionFromKeypointList(list); ++it; } updateValueString(notify); } bool FilterParametersWidget::hasKeypoints() const { return _hasKeypoints; } const QVector & FilterParametersWidget::quotedParameters() const { return _quotedParameters; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/FilterParametersWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterParametersWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERPARAMSWIDGET_H #define GMIC_QT_FILTERPARAMSWIDGET_H #include #include #include #include #include #include #include #include "KeypointList.h" class QLabel; namespace GmicQt { class AbstractParameter; class FilterParametersWidget : public QWidget { Q_OBJECT public: FilterParametersWidget(QWidget * parent); bool build(const QString & name, const QString & hash, const QString & parameters, const QList & values, const QList & visibilityStates); void setNoFilter(const QString & message = QString()); ~FilterParametersWidget() override; const QString & valueString() const; QStringList valueStringList() const; void setValues(const QStringList &, bool notify); void setVisibilityStates(QList states); QList visibilityStates(); QList defaultVisibilityStates(); void applyDefaultVisibilityStates(); void reset(bool notify); void randomize(); QString filterName() const; int actualParametersCount() const; int acceptRandom() const; QString filterHash() const; void clearButtonParameters(); KeypointList keypoints() const; void setKeypoints(KeypointList list, bool notify); bool hasKeypoints() const; const QVector & quotedParameters() const; static QString defaultValueString(const QVector & parameters); static QStringList defaultParameterList(const QString & parameters, // QString * error, // QVector * quoted = nullptr, // QVector * size = nullptr); public slots: void updateValueString(bool notify); void updateValueStringAndNotify(); signals: void valueChanged(); private: static QString valueString(const QVector & parameters); static QVector buildParameters(const QString & filterName, // const QString & parameters, // QObject * parent, // int * actualParameterCount, // bool * acceptRandom, // QString * error); static QStringList defaultParameterList(const QVector & parameters, QVector * quoted); static QVector quotedParameters(const QVector & parameters); static QVector parameterSizes(const QVector & parameters); protected: void clear(); QVector _parameters; int _actualParametersCount; bool _acceptRandom; QString _valueString; QLabel * _labelNoParams; QWidget * _paddingWidget; QString _filterName; QString _filterHash; bool _hasKeypoints; QVector _quotedParameters; }; } // namespace GmicQt #endif // GMIC_QT_FILTERPARAMSWIDGET_H ================================================ FILE: src/FilterParameters/FloatParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FloatParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/FloatParameter.h" #include #include #include #include #include #include #include #include #include #include "FilterParameters/CustomDoubleSpinBox.h" #include "FilterTextTranslator.h" #include "Globals.h" #include "HtmlTranslator.h" #include "Logger.h" #include "Misc.h" #include "Settings.h" namespace GmicQt { FloatParameter::FloatParameter(QObject * parent) : AbstractParameter(parent), _min(0), _max(0), _default(0), _value(0), _label(nullptr), _slider(nullptr), _spinBox(nullptr) { _timerId = 0; _connected = false; } FloatParameter::~FloatParameter() { delete _spinBox; delete _slider; delete _label; } int FloatParameter::size() const { return 1; } bool FloatParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _spinBox; delete _slider; delete _label; _slider = new QSlider(Qt::Horizontal, widget); _slider->setMinimumWidth(SLIDER_MIN_WIDTH); _slider->setRange(0, SLIDER_MAX_RANGE); _slider->setValue(static_cast(SLIDER_MAX_RANGE * (_value - _min) / (_max - _min))); if (Settings::darkThemeEnabled()) { QPalette p = _slider->palette(); p.setColor(QPalette::Button, QColor(100, 100, 100)); p.setColor(QPalette::Highlight, QColor(130, 130, 130)); _slider->setPalette(p); } _spinBox = new CustomDoubleSpinBox(widget, _min, _max); _spinBox->setSingleStep(double(_max - _min) / 100.0); _spinBox->setValue((double)_value); _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_slider, row, 1, 1, 1); _grid->addWidget(_spinBox, row, 2, 1, 1); connectSliderSpinBox(); connect(_spinBox, &CustomDoubleSpinBox::editingFinished, [this]() { notifyIfRelevant(); }); return true; } QString FloatParameter::value() const { QLocale currentLocale; QLocale::setDefault(QLocale::c()); QString value = QString("%1").arg(_spinBox->value()); QLocale::setDefault(currentLocale); return value; } QString FloatParameter::defaultValue() const { QLocale currentLocale; QLocale::setDefault(QLocale::c()); QString value = QString("%1").arg(static_cast(_default)); QLocale::setDefault(currentLocale); return value; } void FloatParameter::setValue(const QString & value) { bool ok = true; const float x = value.toFloat(&ok); if (!ok) { Logger::warning(QString("FloatParameter::setValue(\"%1\"): bad value").arg(value)); return; } _value = x; if (_slider) { disconnectSliderSpinBox(); _slider->setValue(static_cast(SLIDER_MAX_RANGE * (_value - _min) / (_max - _min))); _spinBox->setValue((double)_value); connectSliderSpinBox(); } } void FloatParameter::reset() { disconnectSliderSpinBox(); _value = _default; _slider->setValue(static_cast(SLIDER_MAX_RANGE * (_value - _min) / (_max - _min))); _spinBox->setValue((double)_default); connectSliderSpinBox(); } void FloatParameter::randomize() { if (acceptRandom()) { disconnectSliderSpinBox(); _value = randomReal(_min, _max); _slider->setValue(static_cast(SLIDER_MAX_RANGE * (_value - _min) / (_max - _min))); _spinBox->setValue(_value); connectSliderSpinBox(); } } bool FloatParameter::initFromText(const QString & filterName, const char * text, int & textLength) { textLength = 0; QList list = parseText("float", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QList values = list[1].split(QChar(',')); if (values.size() != 3) { return false; } bool ok1, ok2, ok3; _default = values[0].toFloat(&ok1); _min = values[1].toFloat(&ok2); _max = values[2].toFloat(&ok3); _value = _default; return ok1 && ok2 && ok3; } void FloatParameter::timerEvent(QTimerEvent * event) { killTimer(event->timerId()); _timerId = 0; if (!_spinBox->unfinishedKeyboardEditing()) { notifyIfRelevant(); } } void FloatParameter::onSliderMoved(int value) { const float fValue = _min + (float(value) / static_cast(SLIDER_MAX_RANGE)) * (_max - _min); if (fValue != _value) { _spinBox->setValue(_value = fValue); } } void FloatParameter::onSliderValueChanged(int value) { const float fValue = _min + (float(value) / static_cast(SLIDER_MAX_RANGE)) * (_max - _min); if (fValue != _value) { _spinBox->setValue(_value = fValue); } } void FloatParameter::onSpinBoxChanged(double x) { _value = float(x); disconnectSliderSpinBox(); _slider->setValue(static_cast(SLIDER_MAX_RANGE * (_value - _min) / (_max - _min))); connectSliderSpinBox(); if (_timerId) { killTimer(_timerId); } if (_spinBox->unfinishedKeyboardEditing()) { _timerId = 0; } else { _timerId = startTimer(UPDATE_DELAY); } } void FloatParameter::connectSliderSpinBox() { if (_connected) { return; } connect(_slider, &QSlider::sliderMoved, this, &FloatParameter::onSliderMoved); connect(_slider, &QSlider::valueChanged, this, &FloatParameter::onSliderValueChanged); connect(_spinBox, QOverload::of(&CustomDoubleSpinBox::valueChanged), this, &FloatParameter::onSpinBoxChanged); _connected = true; } void FloatParameter::disconnectSliderSpinBox() { if (!_connected) { return; } _slider->disconnect(this); _spinBox->disconnect(this); _connected = false; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/FloatParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FloatParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FLOATPARAMETER_H #define GMIC_QT_FLOATPARAMETER_H #include #include "AbstractParameter.h" class QSlider; class QLabel; namespace GmicQt { class CustomDoubleSpinBox; class FloatParameter : public AbstractParameter { Q_OBJECT public: FloatParameter(QObject * parent); ~FloatParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; protected: void timerEvent(QTimerEvent * event) override; public slots: void onSliderMoved(int); void onSliderValueChanged(int); void onSpinBoxChanged(double); private: void connectSliderSpinBox(); void disconnectSliderSpinBox(); QString _name; float _min; float _max; float _default; float _value; QLabel * _label; QSlider * _slider; CustomDoubleSpinBox * _spinBox; int _timerId; static const int UPDATE_DELAY = 300; static const int SLIDER_MAX_RANGE = 1000; bool _connected; }; } // namespace GmicQt #endif // GMIC_QT_FLOATPARAMETER_H ================================================ FILE: src/FilterParameters/FolderParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FolderParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/FolderParameter.h" #include #include #include #include #include #include #include #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "IconLoader.h" #include "Settings.h" namespace GmicQt { FolderParameter::FolderParameter(QObject * parent) : AbstractParameter(parent), _label(nullptr), _button(nullptr) {} FolderParameter::~FolderParameter() { delete _label; delete _button; } int FolderParameter::size() const { return 1; } bool FolderParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _label; delete _button; _button = new QPushButton(widget); _button->setIcon(IconLoader::load("folder")); _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_button, row, 1, 1, 2); setValue(_value); connect(_button, &QPushButton::clicked, this, &FolderParameter::onButtonPressed); return true; } QString FolderParameter::value() const { return _value; } QString FolderParameter::defaultValue() const { return _default; } void FolderParameter::setValue(const QString & value) { _value = value; if (_value.isEmpty()) { _value = Settings::FolderParameterDefaultValue; } else if (!QFileInfo(_value).isDir()) { _value = QDir::homePath(); } QDir dir(_value); QDir abs(dir.absolutePath()); if (_button) { int width = _button->contentsRect().width() - 10; QFontMetrics fm(_button->font()); _button->setText(fm.elidedText(abs.dirName(), Qt::ElideRight, width)); } } void FolderParameter::reset() { setValue(_default); } bool FolderParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("folder", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QRegularExpression re("^\".*\"$"); if (re.match(list[1]).hasMatch()) { list[1].chop(1); list[1].remove(0, 1); } if (list[1].isEmpty()) { _default.clear(); _value = Settings::FolderParameterDefaultValue; } else { _default = _value = list[1]; } return true; } bool FolderParameter::isQuoted() const { return true; } void FolderParameter::onButtonPressed() { QString oldValue = _value; QFileDialog::Options options = Settings::nativeFileDialogs() ? QFileDialog::Options() : QFileDialog::DontUseNativeDialog; options |= QFileDialog::ShowDirsOnly; QString path = QFileDialog::getExistingDirectory(dynamic_cast(parent()), tr("Select a folder"), _value, options); if (path.isEmpty()) { setValue(oldValue); } else { Settings::FolderParameterDefaultValue = path; setValue(path); } notifyIfRelevant(); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/FolderParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FolderParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FOLDERPARAMETER_H #define GMIC_QT_FOLDERPARAMETER_H #include #include "AbstractParameter.h" class QPushButton; class QLabel; namespace GmicQt { class FolderParameter : public AbstractParameter { Q_OBJECT public: FolderParameter(QObject * parent); ~FolderParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; bool isQuoted() const override; public slots: void onButtonPressed(); private: QString _name; QString _default; QString _value; QLabel * _label; QPushButton * _button; }; } // namespace GmicQt #endif // GMIC_QT_FOLDERPARAMETER_H ================================================ FILE: src/FilterParameters/IntParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file IntParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/IntParameter.h" #include #include #include #include #include #include #include #include "FilterParameters/CustomSpinBox.h" #include "FilterTextTranslator.h" #include "Globals.h" #include "HtmlTranslator.h" #include "Logger.h" #include "Settings.h" namespace GmicQt { IntParameter::IntParameter(QObject * parent) : AbstractParameter(parent), _min(0), _max(0), _default(0), _value(0), _label(nullptr), _slider(nullptr), _spinBox(nullptr) { _timerId = 0; _connected = false; } IntParameter::~IntParameter() { delete _spinBox; delete _slider; delete _label; } int IntParameter::size() const { return 1; } bool IntParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _spinBox; delete _slider; delete _label; _slider = new QSlider(Qt::Horizontal, widget); _slider->setMinimumWidth(SLIDER_MIN_WIDTH); _slider->setRange(_min, _max); _slider->setValue(_value); const int delta = 1 + _max - _min; if (delta < 20) { _slider->setPageStep(1); } else { const int fact = delta < 100 ? 10 : delta < 1000 ? 100 : delta < 10000 ? 1000 : 10000; _slider->setPageStep(fact * (delta / fact) / 10); } _spinBox = new CustomSpinBox(widget, _min, _max); _spinBox->setValue(_value); if (Settings::darkThemeEnabled()) { QPalette p = _slider->palette(); p.setColor(QPalette::Button, QColor(100, 100, 100)); p.setColor(QPalette::Highlight, QColor(130, 130, 130)); _slider->setPalette(p); } _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_slider, row, 1, 1, 1); _grid->addWidget(_spinBox, row, 2, 1, 1); connectSliderSpinBox(); connect(_spinBox, &CustomSpinBox::editingFinished, [this]() { notifyIfRelevant(); }); return true; } QString IntParameter::value() const { return _spinBox->text(); } QString IntParameter::defaultValue() const { return QString::number(_default); } void IntParameter::setValue(const QString & value) { bool ok = true; const int k = value.toInt(&ok); if (!ok) { Logger::warning(QString("IntParameter::setValue(\"%1\"): bad value").arg(value)); return; } _value = k; if (_spinBox) { disconnectSliderSpinBox(); _spinBox->setValue(_value); _slider->setValue(_value); connectSliderSpinBox(); } } void IntParameter::reset() { disconnectSliderSpinBox(); _slider->setValue(_default); _spinBox->setValue(_default); _value = _default; connectSliderSpinBox(); } void IntParameter::randomize() { if (acceptRandom()) { disconnectSliderSpinBox(); _value = QRandomGenerator::global()->bounded(_min, _max + 1); _slider->setValue(_value); _spinBox->setValue(_value); connectSliderSpinBox(); } } bool IntParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("int", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QList values = list[1].split(QChar(',')); if (values.size() != 3) { return false; } bool ok1, ok2, ok3; _default = values[0].toInt(&ok1); _min = values[1].toInt(&ok2); _max = values[2].toInt(&ok3); _value = _default; return ok1 && ok2 && ok3; } void IntParameter::timerEvent(QTimerEvent * e) { killTimer(e->timerId()); _timerId = 0; if (!_spinBox->unfinishedKeyboardEditing()) { notifyIfRelevant(); } } void IntParameter::onSliderMoved(int value) { if (value != _value) { _spinBox->setValue(_value = value); } } void IntParameter::onSliderValueChanged(int value) { if (value != _value) { _spinBox->setValue(_value = value); } } void IntParameter::onSpinBoxChanged(int i) { _value = i; _slider->setValue(i); if (_timerId) { killTimer(_timerId); } if (_spinBox->unfinishedKeyboardEditing()) { _timerId = 0; } else { _timerId = startTimer(UPDATE_DELAY); } } void IntParameter::connectSliderSpinBox() { if (_connected) { return; } connect(_slider, &QSlider::sliderMoved, this, &IntParameter::onSliderMoved); connect(_slider, &QSlider::valueChanged, this, &IntParameter::onSliderValueChanged); connect(_spinBox, QOverload::of(&CustomSpinBox::valueChanged), this, &IntParameter::onSpinBoxChanged); _connected = true; } void IntParameter::disconnectSliderSpinBox() { if (!_connected) { return; } _slider->disconnect(this); _spinBox->disconnect(this); _connected = false; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/IntParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file IntParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_INTPARAMETER_H #define GMIC_QT_INTPARAMETER_H #include #include "AbstractParameter.h" class QSlider; class QLabel; namespace GmicQt { class CustomSpinBox; class IntParameter : public AbstractParameter { Q_OBJECT public: IntParameter(QObject * parent); ~IntParameter() override; virtual int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; protected: void timerEvent(QTimerEvent *) override; public slots: void onSliderMoved(int); void onSliderValueChanged(int value); void onSpinBoxChanged(int); private: void connectSliderSpinBox(); void disconnectSliderSpinBox(); QString _name; int _min; int _max; int _default; int _value; QLabel * _label; QSlider * _slider; CustomSpinBox * _spinBox; int _timerId; static const int UPDATE_DELAY = 300; bool _connected; }; } // namespace GmicQt #endif // GMIC_QT_INTPARAMETER_H ================================================ FILE: src/FilterParameters/LinkParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LinkParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/LinkParameter.h" #include #include #include #include #include #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" namespace GmicQt { LinkParameter::LinkParameter(QObject * parent) : AbstractParameter(parent), _label(nullptr), _alignment(Qt::AlignLeft) {} LinkParameter::~LinkParameter() { delete _label; } int LinkParameter::size() const { return 0; } bool LinkParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _label; _label = new QLabel(QString("%1").arg(_text).arg(_url), widget); _label->setAlignment(_alignment); _label->setTextFormat(Qt::RichText); _label->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); setTextSelectable(_label); connect(_label, &QLabel::linkActivated, this, &LinkParameter::onLinkActivated); _grid->addWidget(_label, row, 0, 1, 3); return true; } QString LinkParameter::value() const { return QString(); } QString LinkParameter::defaultValue() const { return QString(); } void LinkParameter::setValue(const QString &) {} void LinkParameter::reset() {} bool LinkParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("link", text, textLength); if (list.isEmpty()) { return false; } QList values = list[1].split(QChar(',')); if (values.size() == 3) { bool ok; float a = values[0].toFloat(&ok); if (!ok) { return false; } if (a == 0.0f) { _alignment = Qt::AlignLeft; } else if (a == 1.0f) { _alignment = Qt::AlignRight; } else { _alignment = Qt::AlignCenter; } values.pop_front(); } else { _alignment = Qt::AlignCenter; } if (values.size() == 2) { _text = values[0].trimmed().remove(QRegularExpression("^\"")).remove(QRegularExpression("\"$")); _text = HtmlTranslator::html2txt(FilterTextTranslator::translate(_text, filterName)); values.pop_front(); } if (values.size() == 1) { _url = values[0].trimmed().remove(QRegularExpression("^\"")).remove(QRegularExpression("\"$")); } if (values.isEmpty()) { return false; } if (_text.isEmpty()) { _text = _url; } return true; } void LinkParameter::onLinkActivated(const QString & link) { QDesktopServices::openUrl(QUrl(link)); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/LinkParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LinkParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_LINKPARAMETER_H #define GMIC_QT_LINKPARAMETER_H #include #include "AbstractParameter.h" class QLabel; namespace GmicQt { class LinkParameter : public AbstractParameter { Q_OBJECT public: LinkParameter(QObject * parent); ~LinkParameter() override; int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; public slots: void onLinkActivated(const QString & link); private: QLabel * _label; QString _text; QString _url; Qt::AlignmentFlag _alignment; }; } // namespace GmicQt #endif // GMIC_QT_LINKPARAMETER_H ================================================ FILE: src/FilterParameters/MultilineTextParameterWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file MultilineTextParameterWidget.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/MultilineTextParameterWidget.h" #include #include #include #include "Common.h" #include "ui_multilinetextparameterwidget.h" namespace GmicQt { MultilineTextParameterWidget::MultilineTextParameterWidget(const QString & name, const QString & value, QWidget * parent) : QWidget(parent), ui(new Ui::MultilineTextParameterWidget) { ui->setupUi(this); ui->textEdit->document()->setPlainText(value); ui->textEdit->installEventFilter(this); ui->label->setText(name); ui->pbUpdate->setToolTip(tr("Ctrl+Return")); connect(ui->pbUpdate, &QPushButton::clicked, this, &MultilineTextParameterWidget::onUpdate); } MultilineTextParameterWidget::~MultilineTextParameterWidget() { delete ui; } QString MultilineTextParameterWidget::text() const { return ui->textEdit->document()->toPlainText(); } void MultilineTextParameterWidget::setText(const QString & text) { ui->textEdit->document()->setPlainText(text); } void MultilineTextParameterWidget::onUpdate(bool) { emit valueChanged(); } bool MultilineTextParameterWidget::eventFilter(QObject * obj, QEvent * event) { if (event->type() == QEvent::KeyPress) { auto keyEvent = dynamic_cast(event); if (keyEvent && (keyEvent->modifiers() & Qt::ControlModifier) && (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return)) { onUpdate(true); return true; } } return QObject::eventFilter(obj, event); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/MultilineTextParameterWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file MultilineTextParameterWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_MULTILINETEXTPARAMETERWIDGET_H #define GMIC_QT_MULTILINETEXTPARAMETERWIDGET_H #include namespace Ui { class MultilineTextParameterWidget; } namespace GmicQt { class MultilineTextParameterWidget : public QWidget { Q_OBJECT public: explicit MultilineTextParameterWidget(const QString & name, const QString & value, QWidget * parent); ~MultilineTextParameterWidget() override; QString text() const; void setText(const QString & text); signals: void valueChanged(); public slots: void onUpdate(bool); protected: bool eventFilter(QObject * obj, QEvent * event) override; private: Ui::MultilineTextParameterWidget * ui; }; } // namespace GmicQt #endif // GMIC_QT_MULTILINETEXTPARAMETERWIDGET_H ================================================ FILE: src/FilterParameters/NoteParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file NoteParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/NoteParameter.h" #include #include #include #include #include #include #include "HtmlTranslator.h" #include "Settings.h" namespace GmicQt { NoteParameter::NoteParameter(QObject * parent) : AbstractParameter(parent), _label(nullptr) {} NoteParameter::~NoteParameter() { delete _label; } int NoteParameter::size() const { return 0; } bool NoteParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _label; _label = new QLabel(_text, widget); _label->setTextFormat(Qt::RichText); _label->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); _label->setWordWrap(true); setTextSelectable(_label); connect(_label, &QLabel::linkActivated, this, &NoteParameter::onLinkActivated); _grid->addWidget(_label, row, 0, 1, 3); return true; } QString NoteParameter::value() const { return QString(); } QString NoteParameter::defaultValue() const { return QString(); } void NoteParameter::setValue(const QString &) {} void NoteParameter::reset() {} bool NoteParameter::initFromText(const QString & /* filterName */, const char * text, int & textLength) { QList list = parseText("note", text, textLength); if (list.isEmpty()) { return false; } _text = list[1].trimmed(); // Notes are never translated _text.remove(QRegularExpression("^\"")).remove(QRegularExpression("\"$")).replace(QString("\\\""), "\""); _text.replace(QString("\\n"), "
"); if (Settings::darkThemeEnabled()) { _text.replace(QRegularExpression("color\\s*=\\s*\"purple\""), QString("color=\"#ff00ff\"")); _text.replace(QRegularExpression("foreground\\s*=\\s*\"purple\""), QString("foreground=\"#ff00ff\"")); _text.replace(QRegularExpression("color\\s*=\\s*\"blue\""), QString("color=\"#9b9bff\"")); _text.replace(QRegularExpression("foreground\\s*=\\s*\"blue\""), QString("foreground=\"#9b9bff\"")); } _text.replace(QRegularExpression("color\\s*=\\s*\""), QString("style=\"color:")); _text.replace(QRegularExpression("foreground\\s*=\\s*\""), QString("style=\"color:")); _text = HtmlTranslator::fromUtf8Escapes(_text); return true; } void NoteParameter::onLinkActivated(const QString & link) { QDesktopServices::openUrl(QUrl(link)); } } // namespace GmicQt ================================================ FILE: src/FilterParameters/NoteParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file NoteParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_NOTEPARAMETER_H #define GMIC_QT_NOTEPARAMETER_H #include "AbstractParameter.h" class QLabel; namespace GmicQt { class NoteParameter : public AbstractParameter { Q_OBJECT public: NoteParameter(QObject * parent); ~NoteParameter() override; int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; public slots: void onLinkActivated(const QString & link); private: QLabel * _label; QString _text; }; } // namespace GmicQt #endif // GMIC_QT_NOTEPARAMETER_H ================================================ FILE: src/FilterParameters/PointParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file PointParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/PointParameter.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "KeypointList.h" #include "Misc.h" #include "Settings.h" namespace GmicQt { int PointParameter::_defaultColorNextIndex = 0; unsigned long PointParameter::_randomSeed = 12345; PointParameter::PointParameter(QObject * parent) : AbstractParameter(parent), _defaultPosition(0, 0), _position(0, 0), _removable(false), _burst(false) { _label = nullptr; _colorLabel = nullptr; _labelX = nullptr; _labelY = nullptr; _spinBoxX = nullptr; _spinBoxY = nullptr; _removeButton = nullptr; _rowCell = nullptr; _notificationEnabled = true; _connected = false; _defaultRemovedStatus = false; _radius = KeypointList::Keypoint::DefaultRadius; _keepOpacityWhenSelected = false; _removed = false; setRemoved(false); } PointParameter::~PointParameter() { delete _label; delete _rowCell; } int PointParameter::size() const { return 2; } bool PointParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _label; delete _rowCell; _rowCell = new QWidget(widget); auto hbox = new QHBoxLayout(_rowCell); hbox->setContentsMargins(0, 0, 0, 0); hbox->addWidget(_colorLabel = new QLabel(_rowCell)); QFontMetrics fm(widget->font()); QRect r = fm.boundingRect("CLR"); _colorLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); QPixmap pixmap(r.width(), r.height()); QPainter painter(&pixmap); painter.setBrush(QColor(_color.red(), _color.green(), _color.blue())); painter.setPen(Qt::black); painter.drawRect(0, 0, pixmap.width() - 1, pixmap.height() - 1); _colorLabel->setPixmap(pixmap); hbox->addWidget(_labelX = new QLabel("X", _rowCell)); hbox->addWidget(_spinBoxX = new QDoubleSpinBox(_rowCell)); hbox->addWidget(_labelY = new QLabel("Y", _rowCell)); hbox->addWidget(_spinBoxY = new QDoubleSpinBox(_rowCell)); if (_removable) { hbox->addWidget(_removeButton = new QToolButton(_rowCell)); _removeButton->setCheckable(true); _removeButton->setChecked(_removed); _removeButton->setIcon(Settings::RemoveIcon); } else { _removeButton = nullptr; } hbox->addSpacerItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Fixed)); _spinBoxX->setRange(-200.0, 300.0); _spinBoxY->setRange(-200.0, 300.0); _spinBoxX->setValue(_position.x()); _spinBoxY->setValue(_position.y()); _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _grid->addWidget(_rowCell, row, 1, 1, 2); #ifdef _GMIC_QT_DEBUG_ _label->setToolTip(QString("Burst: %1").arg(_burst ? "on" : "off")); #endif setRemoved(_removed); connectSpinboxes(); return true; } void PointParameter::addToKeypointList(KeypointList & list) const { if (_removable && _removed) { list.add(KeypointList::Keypoint(_color, _removable, _burst, _radius, _keepOpacityWhenSelected)); } else { list.add(KeypointList::Keypoint(_position.x(), _position.y(), _color, _removable, _burst, _radius, _keepOpacityWhenSelected)); } } void PointParameter::extractPositionFromKeypointList(KeypointList & list) { Q_ASSERT_X(!list.isEmpty(), __PRETTY_FUNCTION__, "Keypoint list is empty"); enableNotifications(false); KeypointList::Keypoint kp = list.front(); if (!kp.isNaN()) { _position.setX(kp.x); _position.setY(kp.y); if (_spinBoxX) { _spinBoxX->setValue(kp.x); _spinBoxY->setValue(kp.y); } } list.pop_front(); enableNotifications(true); } QString PointParameter::value() const { if (_removed) { return "nan,nan"; } return QString("%1,%2").arg(_position.x()).arg(_position.y()); } QString PointParameter::defaultValue() const { return QString("%1,%2").arg(_defaultPosition.x()).arg(_defaultPosition.y()); } void PointParameter::setValue(const QString & value) { QStringList list = value.split(","); if (list.size() == 2) { bool ok; float x = list[0].toFloat(&ok); bool xNaN = (list[0].toUpper() == "NAN"); if (ok && !xNaN) { _position.setX(x); } float y = list[1].toFloat(&ok); bool yNaN = (list[1].toUpper() == "NAN"); if (ok && !yNaN) { _position.setY(y); } _removed = (_removable && xNaN && yNaN); updateView(); } } void PointParameter::setVisibilityState(AbstractParameter::VisibilityState state) { AbstractParameter::setVisibilityState(state); if (state == VisibilityState::Visible) { updateView(); } } void PointParameter::updateView() { if (!_spinBoxX) { return; } disconnectSpinboxes(); if (_removeButton) { setRemoved(_removed); _removeButton->setChecked(_removed); } if (!_removed) { _spinBoxX->setValue(_position.x()); _spinBoxY->setValue(_position.y()); } connectSpinboxes(); } void PointParameter::reset() { _position = _defaultPosition; enableNotifications(false); if (_spinBoxX) { _spinBoxX->setValue(_defaultPosition.rx()); _spinBoxY->setValue(_defaultPosition.ry()); } if (_removeButton && _removable) { _removeButton->setChecked((_removed = _defaultRemovedStatus)); } enableNotifications(true); } void PointParameter::randomize() { if (acceptRandom()) { _position = QPointF(randomReal(0.0, 100.0), randomReal(0.0, 100.0)); if (_spinBoxX) { disconnectSpinboxes(); _spinBoxX->setValue(_position.rx()); _spinBoxY->setValue(_position.ry()); connectSpinboxes(); } } } // P = point(x,y,removable{(0),1},burst{(0),1},r,g,b,a{negative->keepOpacityWhenSelected},radius,widget_visible{0|(1)}) bool PointParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QList list = parseText("point", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QList params = list[1].split(",", QT_SKIP_EMPTY_PARTS); bool ok = true; _color.setRgb(255, 255, 255, 255); _burst = false; _removable = false; _radius = KeypointList::Keypoint::DefaultRadius; _keepOpacityWhenSelected = false; float x = 50.0f; float y = 50.0f; _removed = false; bool xNaN = true; bool yNaN = true; if (!params.isEmpty()) { x = params[0].toFloat(&ok); xNaN = (params[0].toUpper() == "NAN"); if (!ok) { return false; } if (xNaN) { x = 50.0; } } if (params.size() >= 2) { y = params[1].toFloat(&ok); yNaN = (params[1].toUpper() == "NAN"); if (!ok) { return false; } if (yNaN) { y = 50.0; } } _defaultPosition.setX(static_cast(x)); _defaultPosition.setY(static_cast(y)); _removed = _defaultRemovedStatus = (xNaN || yNaN); if (params.size() >= 3) { int removable = params[2].toInt(&ok); if (!ok) { return false; } switch (removable) { case -1: _removable = _removed = _defaultRemovedStatus = true; break; case 0: _removable = _removed = false; break; case 1: _removable = true; _defaultRemovedStatus = _removed = (xNaN && yNaN); break; default: return false; } } if (params.size() >= 4) { bool burst = params[3].toInt(&ok); if (!ok) { return false; } _burst = burst; } if (params.size() >= 5) { int red = params[4].toInt(&ok); if (!ok) { return false; } _color.setRed(red); _color.setGreen(red); _color.setBlue(red); } else { pickColorFromDefaultColormap(); } if (params.size() >= 6) { int green = params[5].toInt(&ok); if (!ok) { return false; } _color.setGreen(green); _color.setBlue(0); } if (params.size() >= 7) { int blue = params[6].toInt(&ok); if (!ok) { return false; } _color.setBlue(blue); } if (params.size() >= 8) { int alpha = params[7].toInt(&ok); if (!ok) { return false; } if (params[7].trimmed().startsWith("-") || (alpha < 0)) { _keepOpacityWhenSelected = true; } _color.setAlpha(std::abs(alpha)); } if (params.size() >= 9) { QString s = params[8].trimmed(); if (s.endsWith("%")) { s.chop(1); _radius = -s.toFloat(&ok); } else { _radius = s.toFloat(&ok); } if (!ok) { return false; } } _position = _defaultPosition; return true; } void PointParameter::enableNotifications(bool on) { _notificationEnabled = on; } void PointParameter::onSpinBoxChanged() { _position = QPointF(_spinBoxX->value(), _spinBoxY->value()); if (_notificationEnabled) { notifyIfRelevant(); } } void PointParameter::setRemoved(bool on) { _removed = on; if (_spinBoxX) { _spinBoxX->setDisabled(on); _spinBoxY->setDisabled(on); _labelX->setDisabled(on); _labelY->setDisabled(on); if (_removeButton) { _removeButton->setIcon(on ? Settings::AddIcon : Settings::RemoveIcon); } } } void PointParameter::resetDefaultColorIndex() { _defaultColorNextIndex = 0; _randomSeed = 12345; } void PointParameter::onRemoveButtonToggled(bool on) { setRemoved(on); notifyIfRelevant(); } int PointParameter::randomChannel() { int value = (_randomSeed / 65536) % 256; _randomSeed = _randomSeed * 1103515245 + 12345; return value; } void PointParameter::connectSpinboxes() { if (_connected || !_spinBoxX) { return; } connect(_spinBoxX, QOverload::of(&QDoubleSpinBox::valueChanged), this, &PointParameter::onSpinBoxChanged); connect(_spinBoxY, QOverload::of(&QDoubleSpinBox::valueChanged), this, &PointParameter::onSpinBoxChanged); if (_removable && _removeButton) { connect(_removeButton, &QToolButton::toggled, this, &PointParameter::onRemoveButtonToggled); } _connected = true; } void PointParameter::disconnectSpinboxes() { if (!_connected || !_spinBoxX) { return; } _spinBoxX->disconnect(this); _spinBoxY->disconnect(this); if (_removable && _removeButton) { _removeButton->disconnect(this); } _connected = false; } void PointParameter::pickColorFromDefaultColormap() { switch (_defaultColorNextIndex) { case 0: _color.setRgb(255, 255, 255, 255); break; case 1: _color = Qt::red; break; case 2: _color = Qt::green; break; case 3: _color.setRgb(64, 64, 255, 255); break; case 4: _color = Qt::cyan; break; case 5: _color = Qt::magenta; break; case 6: _color = Qt::yellow; break; default: _color.setRgb(randomChannel(), randomChannel(), randomChannel()); } ++_defaultColorNextIndex; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/PointParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file PointParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_POINTPARAMETER_H #define GMIC_QT_POINTPARAMETER_H #include #include #include #include #include #include #include #include "AbstractParameter.h" class QSpinBox; class QSlider; class QLabel; class QPushButton; namespace GmicQt { class PointParameter : public AbstractParameter { Q_OBJECT public: PointParameter(QObject * parent); ~PointParameter() override; int size() const override; bool addTo(QWidget *, int row) override; void addToKeypointList(KeypointList &) const override; void extractPositionFromKeypointList(KeypointList &) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; void setRemoved(bool on); static void resetDefaultColorIndex(); void setVisibilityState(AbstractParameter::VisibilityState state) override; public slots: void enableNotifications(bool); private slots: void onSpinBoxChanged(); void onRemoveButtonToggled(bool); private: static int randomChannel(); void connectSpinboxes(); void disconnectSpinboxes(); void pickColorFromDefaultColormap(); void updateView(); QString _name; QPointF _defaultPosition; bool _defaultRemovedStatus; QPointF _position; QColor _color; bool _removable; bool _burst; float _radius; bool _keepOpacityWhenSelected; QLabel * _label; QLabel * _colorLabel; QLabel * _labelX; QLabel * _labelY; QDoubleSpinBox * _spinBoxX; QDoubleSpinBox * _spinBoxY; QToolButton * _removeButton; bool _connected; bool _removed; QWidget * _rowCell; bool _notificationEnabled; static int _defaultColorNextIndex; static unsigned long _randomSeed; }; } // namespace GmicQt #endif // GMIC_QT_POINTPARAMETER_H ================================================ FILE: src/FilterParameters/SeparatorParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file SeparatorParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/SeparatorParameter.h" #include #include #include #include "Common.h" #include "Settings.h" namespace GmicQt { SeparatorParameter::SeparatorParameter(QObject * parent) : AbstractParameter(parent), _frame(nullptr) {} SeparatorParameter::~SeparatorParameter() { delete _frame; } int SeparatorParameter::size() const { return 0; } bool SeparatorParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _frame; _frame = new QFrame(widget); QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); sizePolicy.setHeightForWidth(_frame->sizePolicy().hasHeightForWidth()); _frame->setSizePolicy(sizePolicy); _frame->setFrameShape(QFrame::HLine); _frame->setFrameShadow(QFrame::Sunken); if (Settings::darkThemeEnabled()) { _frame->setStyleSheet("QFrame{ border-top: 0px none #a0a0a0; border-bottom: 2px solid rgb(160,160,160);}"); } _grid->addWidget(_frame, row, 0, 1, 3); return true; } QString SeparatorParameter::value() const { return QString(); } QString SeparatorParameter::defaultValue() const { return QString(); } void SeparatorParameter::setValue(const QString &) {} void SeparatorParameter::reset() {} bool SeparatorParameter::initFromText(const QString & /* filterName */, const char * text, int & textLength) { QStringList list = parseText("separator", text, textLength); unused(list); return true; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/SeparatorParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file SeparatorParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_SEPARATORPARAMETER_H #define GMIC_QT_SEPARATORPARAMETER_H #include "AbstractParameter.h" class QFrame; namespace GmicQt { class SeparatorParameter : public AbstractParameter { Q_OBJECT public: SeparatorParameter(QObject * parent); ~SeparatorParameter() override; int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; private: QFrame * _frame; }; } // namespace GmicQt #endif // GMIC_QT_SEPARATORPARAMETER_H ================================================ FILE: src/FilterParameters/TextParameter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file TextParameter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterParameters/TextParameter.h" #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "FilterParameters/MultilineTextParameterWidget.h" #include "FilterTextTranslator.h" #include "HtmlTranslator.h" #include "IconLoader.h" #include "Misc.h" namespace GmicQt { TextParameter::TextParameter(QObject * parent) : AbstractParameter(parent), _label(nullptr), _lineEdit(nullptr), _textEdit(nullptr), _multiline(false), _connected(false) { _updateAction = nullptr; } TextParameter::~TextParameter() { delete _lineEdit; delete _textEdit; delete _label; } int TextParameter::size() const { return 1; } bool TextParameter::addTo(QWidget * widget, int row) { _grid = dynamic_cast(widget->layout()); Q_ASSERT_X(_grid, __PRETTY_FUNCTION__, "No grid layout in widget"); _row = row; delete _label; delete _lineEdit; delete _textEdit; if (_multiline) { _label = nullptr; _lineEdit = nullptr; _textEdit = new MultilineTextParameterWidget(_name, _value, widget); _grid->addWidget(_textEdit, row, 0, 1, 3); } else { _grid->addWidget(_label = new QLabel(_name, widget), row, 0, 1, 1); setTextSelectable(_label); _lineEdit = new QLineEdit(_value, widget); _textEdit = nullptr; _grid->addWidget(_lineEdit, row, 1, 1, 2); #if QT_VERSION_GTE(5, 2, 0) _updateAction = _lineEdit->addAction(IconLoader::load("view-refresh"), QLineEdit::TrailingPosition); #endif } connectEditor(); return true; } QString TextParameter::value() const { return _multiline ? _textEdit->text() : _lineEdit->text(); } QString TextParameter::defaultValue() const { return _default; } void TextParameter::setValue(const QString & value) { _value = value; if (_textEdit) { disconnectEditor(); _textEdit->setText(_value); connectEditor(); } else if (_lineEdit) { disconnectEditor(); _lineEdit->setText(_value); connectEditor(); } } void TextParameter::reset() { if (_textEdit) { _textEdit->setText(_default); } else if (_lineEdit) { _lineEdit->setText(_default); } _value = _default; } void TextParameter::randomize() { if (acceptRandom()) { static QString charset = QString::fromUtf8("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890 "); disconnectEditor(); QRandomGenerator * rng = QRandomGenerator::global(); int count = rng->bounded(5, 31); int size = charset.size(); QString text; while (count--) { text.append(charset[rng->bounded(size)]); } if (_textEdit) { _textEdit->setText(text); } else if (_lineEdit) { _lineEdit->setText(text); } connectEditor(); } } bool TextParameter::initFromText(const QString & filterName, const char * text, int & textLength) { QStringList list = parseText("text", text, textLength); if (list.isEmpty()) { return false; } _name = HtmlTranslator::html2txt(FilterTextTranslator::translate(list[0], filterName)); QString value = list[1]; _multiline = false; QRegularExpression re("^\\s*(0|1)\\s*,"); auto match = re.match(value); if (match.hasMatch()) { _multiline = (match.captured(1).toInt() == 1); value.replace(re, ""); } _value = _default = unescaped(unquoted(value)); return true; } bool TextParameter::isQuoted() const { return true; } void TextParameter::onValueChanged() { notifyIfRelevant(); } void TextParameter::connectEditor() { if (_connected) { return; } if (_textEdit) { connect(_textEdit, &MultilineTextParameterWidget::valueChanged, this, &TextParameter::onValueChanged); } else if (_lineEdit) { connect(_lineEdit, &QLineEdit::editingFinished, this, &TextParameter::onValueChanged); #if QT_VERSION_GTE(5, 2, 0) connect(_updateAction, &QAction::triggered, this, &TextParameter::onValueChanged); #endif } _connected = true; } void TextParameter::disconnectEditor() { if (!_connected) { return; } if (_textEdit) { _textEdit->disconnect(this); } else if (_lineEdit) { _lineEdit->disconnect(this); #if QT_VERSION_GTE(5, 2, 0) _updateAction->disconnect(this); #endif } _connected = false; } } // namespace GmicQt ================================================ FILE: src/FilterParameters/TextParameter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file TextParameter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_TEXTPARAMETER_H #define GMIC_QT_TEXTPARAMETER_H #include #include "AbstractParameter.h" class QLineEdit; class QLabel; class QTextEdit; class QAction; namespace GmicQt { class MultilineTextParameterWidget; class TextParameter : public AbstractParameter { Q_OBJECT public: TextParameter(QObject * parent); ~TextParameter() override; int size() const override; bool addTo(QWidget *, int row) override; QString value() const override; QString defaultValue() const override; void setValue(const QString & value) override; void reset() override; void randomize() override; bool initFromText(const QString & filterName, const char * text, int & textLength) override; bool isQuoted() const override; private slots: void onValueChanged(); private: void connectEditor(); void disconnectEditor(); QString _name; QString _default; QString _value; QLabel * _label; QLineEdit * _lineEdit; MultilineTextParameterWidget * _textEdit; QAction * _updateAction; bool _multiline; bool _connected; }; } // namespace GmicQt #endif // GMIC_QT_TEXTPARAMETER_H ================================================ FILE: src/FilterSelector/FavesModel.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FavesModel.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FavesModel.h" #include #include #include #include #include #include "Globals.h" #include "HtmlTranslator.h" #include "Misc.h" namespace GmicQt { const size_t FavesModel::NoIndex = std::numeric_limits::max(); FavesModel::FavesModel() = default; FavesModel::~FavesModel() = default; void FavesModel::clear() { _faves.clear(); } void FavesModel::addFave(const FavesModel::Fave & fave) { _faves[fave.hash()] = fave; } void FavesModel::removeFave(const QString & hash) { _faves.remove(hash); } bool FavesModel::contains(const QString & hash) const { return _faves.find(hash) != _faves.cend(); } void FavesModel::flush() const { qDebug() << "Faves\n======="; for (const Fave & fave : _faves) { qDebug() << fave.name(); } } size_t FavesModel::faveCount() const { return _faves.size(); } FavesModel::const_iterator FavesModel::findFaveFromHash(const QString & hash) const { return {_faves.find(hash)}; } FavesModel::const_iterator FavesModel::findFaveFromPlainText(const QString & name) const { for (auto it = cbegin(); it != cend(); ++it) { if (it->plainText() == name) { return it; } } return cend(); } const FavesModel::Fave & FavesModel::getFaveFromHash(const QString & hash) const { Q_ASSERT_X(_faves.contains(hash), "getFaveFromHash", "Hash not found"); return _faves.find(hash).value(); } QString FavesModel::uniqueName(const QString & name, const QString & faveHashToIgnore) { QString basename(name); basename.remove(QRegularExpression(R"~( *\(\d+\)$)~")); int iMax = -1; bool nameIsUnique = true; QMap::const_iterator it = _faves.cbegin(); while (it != _faves.cend()) { if (it.key() != faveHashToIgnore) { QString faveName = it.value().name(); if (faveName == name) { nameIsUnique = false; } QRegularExpression re(R"~( *\((\d+)\)$)~"); QRegularExpressionMatch match = re.match(faveName); if (match.hasMatch()) { faveName.remove(re); if (faveName == basename) { iMax = std::max(iMax, match.captured(1).toInt()); } } else if ((basename == faveName) && (iMax == -1)) { iMax = 1; } } ++it; } if (nameIsUnique || (iMax == -1)) { return name; } return QString("%1 (%2)").arg(basename).arg(iMax + 1); } FavesModel::Fave & FavesModel::Fave::setName(const QString & name) { _name = name; _plainText = HtmlTranslator::html2txt(_name, true); return *this; } FavesModel::Fave & FavesModel::Fave::setOriginalName(const QString & name) { _originalName = name; return *this; } FavesModel::Fave & FavesModel::Fave::setCommand(const QString & command) { _command = command; return *this; } FavesModel::Fave & FavesModel::Fave::setPreviewCommand(const QString & command) { _previewCommand = command; return *this; } FavesModel::Fave & FavesModel::Fave::setOriginalHash(const QString & hash) { _originalHash = hash; return *this; } FavesModel::Fave & FavesModel::Fave::setDefaultValues(const QList & defaultValues) { _defaultValues = defaultValues; return *this; } FavesModel::Fave & FavesModel::Fave::setDefaultVisibilities(const QList & defaultVisibilities) { _defaultVisibilityStates = defaultVisibilities; return *this; } FavesModel::Fave & FavesModel::Fave::build() { QCryptographicHash hash(QCryptographicHash::Md5); hash.addData("FAVE/"); hash.addData(_name.toLocal8Bit()); hash.addData(_command.toLocal8Bit()); hash.addData(_previewCommand.toLocal8Bit()); _hash = hash.result().toHex(); QCryptographicHash originalHash(QCryptographicHash::Md5); originalHash.addData(_originalName.toLocal8Bit()); originalHash.addData(_command.toLocal8Bit()); originalHash.addData(_previewCommand.toLocal8Bit()); _originalHash = originalHash.result().toHex(); // TODO : use raw hashes in memory, hex when stored as text return *this; } const QString & FavesModel::Fave::name() const { return _name; } const QString & FavesModel::Fave::plainText() const { return _plainText; } const QString FavesModel::Fave::absolutePath() const { static const QList FavePath = {HtmlTranslator::removeTags(FAVE_FOLDER_TEXT)}; return filterFullPathWithoutTags(FavePath, _name); } const QString & FavesModel::Fave::originalName() const { return _originalName; } const QString & FavesModel::Fave::originalHash() const { return _originalHash; } const QString & FavesModel::Fave::command() const { return _command; } const QString & FavesModel::Fave::previewCommand() const { return _previewCommand; } const QString & FavesModel::Fave::hash() const { return _hash; } const QList & FavesModel::Fave::defaultValues() const { return _defaultValues; } const QList & FavesModel::Fave::defaultVisibilityStates() const { return _defaultVisibilityStates; } QString FavesModel::Fave::toString() const { return QString("(name='%1', command='%2', previewCommand='%3'," " hash='%4', originalHash='%5')") .arg(_name) .arg(_command) .arg(_previewCommand) .arg(_hash) .arg(_originalHash); } bool FavesModel::Fave::matchKeywords(const QList & keywords) const { static const QString faveFolderPlainText = HtmlTranslator::html2txt(QObject::tr(FAVE_FOLDER_TEXT)); QList::const_iterator itKeyword = keywords.cbegin(); while (itKeyword != keywords.cend()) { const QString & keyword = *itKeyword; if (!faveFolderPlainText.contains(keyword, Qt::CaseInsensitive) && !_plainText.contains(keyword, Qt::CaseInsensitive)) { return false; } ++itKeyword; } return true; } FavesModel::const_iterator::const_iterator(const QMap::const_iterator & iterator) { _mapIterator = iterator; } const FavesModel::Fave & FavesModel::const_iterator::operator*() const { return _mapIterator.value(); } FavesModel::const_iterator & FavesModel::const_iterator::operator++() { ++_mapIterator; return *this; } FavesModel::const_iterator FavesModel::const_iterator::operator++(int) { FavesModel::const_iterator current = *this; ++(*this); return current; } const FavesModel::Fave * FavesModel::const_iterator::operator->() const { return &(_mapIterator.value()); } bool FavesModel::const_iterator::operator!=(const FavesModel::const_iterator & other) const { return _mapIterator != other._mapIterator; } bool FavesModel::const_iterator::operator==(const FavesModel::const_iterator & other) const { return _mapIterator == other._mapIterator; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FavesModel.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FavesModel.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FAVESMODEL_H #define GMIC_QT_FAVESMODEL_H #include #include #include #include namespace GmicQt { class FavesModel { public: class Fave { public: Fave & setName(const QString & name); Fave & setOriginalName(const QString & name); Fave & setCommand(const QString & command); Fave & setPreviewCommand(const QString & command); Fave & setOriginalHash(const QString & hash); Fave & setDefaultValues(const QList & defaultValues); Fave & setDefaultVisibilities(const QList & defaultVisibilityStates); Fave & build(); const QString & name() const; const QString & plainText() const; const QString absolutePath() const; const QString & originalName() const; const QString & originalHash() const; const QString & command() const; const QString & previewCommand() const; const QString & hash() const; const QList & defaultValues() const; const QList & defaultVisibilityStates() const; QString toString() const; bool matchKeywords(const QList & keywords) const; private: QString _name; QString _plainText; QString _originalName; QString _command; QString _previewCommand; QString _hash; QString _originalHash; QList _defaultValues; QList _defaultVisibilityStates; }; class const_iterator { public: const_iterator(const QMap::const_iterator & iterator); const Fave & operator*() const; const_iterator & operator++(); const_iterator operator++(int); const Fave * operator->() const; bool operator!=(const FavesModel::const_iterator & other) const; bool operator==(const FavesModel::const_iterator & other) const; private: QMap::const_iterator _mapIterator; }; FavesModel(); ~FavesModel(); inline const_iterator begin() const; inline const_iterator end() const; inline const_iterator cbegin() const; inline const_iterator cend() const; void clear(); void addFave(const Fave &); void removeFave(const QString & hash); bool contains(const QString & hash) const; void flush() const; size_t faveCount() const; const_iterator findFaveFromHash(const QString &) const; const_iterator findFaveFromPlainText(const QString &) const; const Fave & getFaveFromHash(const QString & hash) const; QString uniqueName(const QString & name, const QString & faveHashToIgnore); static const size_t NoIndex; private: QMap _faves; }; /* * Inline methods */ FavesModel::const_iterator FavesModel::cbegin() const { return FavesModel::const_iterator(_faves.cbegin()); } FavesModel::const_iterator FavesModel::cend() const { return FavesModel::const_iterator(_faves.end()); } FavesModel::const_iterator FavesModel::begin() const { return FavesModel::const_iterator(_faves.cbegin()); } FavesModel::const_iterator FavesModel::end() const { return FavesModel::const_iterator(_faves.end()); } } // namespace GmicQt #endif // GMIC_QT_FAVESMODEL_H ================================================ FILE: src/FilterSelector/FavesModelReader.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FavesModelReader.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FavesModelReader.h" #include #include #include #include #include #include #include #include #include #include #include #include "FilterSelector/FavesModel.h" #include "Logger.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { FavesModelReader::FavesModelReader(FavesModel & model) : _model(model) {} bool FavesModelReader::gmicGTKFaveFileAvailable() { QFileInfo info(gmicGTKFavesFilename()); return info.isReadable(); } FavesModel::Fave FavesModelReader::jsonObjectToFave(const QJsonObject & object) { FavesModel::Fave fave; fave.setName(object.value("Name").toString("")); fave.setOriginalName(object.value("originalName").toString("")); fave.setCommand(object.value("command").toString("")); fave.setPreviewCommand(object.value("preview").toString()); QStringList defaultParameters; QJsonArray array = object.value("defaultParameters").toArray(); for (const QJsonValueRef value : array) { defaultParameters.push_back(value.toString()); } fave.setDefaultValues(defaultParameters); QList defaultVisibilities; array = object.value("defaultVisibilities").toArray(); for (QJsonValueRef value : array) { defaultVisibilities.push_back(value.toInt()); } fave.setDefaultVisibilities(defaultVisibilities); fave.build(); return fave; } void FavesModelReader::importFavesFromGmicGTK() { QString filename = gmicGTKFavesFilename(); QFile file(filename); if (file.open(QIODevice::ReadOnly)) { QString line; int lineNumber = 1; while (!(line = file.readLine()).isEmpty()) { line = line.trimmed(); line.remove(QRegularExpression("^.")).remove(QRegularExpression(".$")); QList list = line.split("}{"); for (QString & str : list) { str.replace(QChar(gmic_lbrace), QString("{")); str.replace(QChar(gmic_rbrace), QString("}")); } if (list.size() >= 4) { FavesModel::Fave fave; fave.setName(list.front()); fave.setOriginalName(list[1]); fave.setCommand(list[2].replace(QRegularExpression("^gimp_"), "fx_")); fave.setPreviewCommand(list[3].replace(QRegularExpression("^gimp_"), "fx_")); list.pop_front(); list.pop_front(); list.pop_front(); list.pop_front(); fave.setDefaultValues(list); fave.build(); _model.addFave(fave); } else { Logger::error(QString("Import failed for fave at %1:%2").arg(file.fileName()).arg(lineNumber)); } ++lineNumber; } } else { Logger::error("Import failed. Cannot open " + filename); } } void FavesModelReader::loadFaves() { // Read JSON faves if file exists QString jsonFilename(QString("%1%2").arg(gmicConfigPath(false)).arg("gmic_qt_faves.json")); QFile jsonFile(jsonFilename); if (jsonFile.exists()) { if (jsonFile.open(QIODevice::ReadOnly)) { QJsonDocument document; QJsonParseError parseError; document = QJsonDocument::fromJson(jsonFile.readAll(), &parseError); if (parseError.error == QJsonParseError::NoError) { QJsonArray array = document.array(); for (const QJsonValueRef & value : array) { _model.addFave(jsonObjectToFave(value.toObject())); } } else { Logger::error("Cannot load faves (parse error) : " + jsonFilename); Logger::error(parseError.errorString()); } } else { Logger::log("Faves loading failed: Cannot open " + jsonFilename); } return; } // Read old 2.0.0 prerelease file format if no JSON was found QString filename(QString("%1%2").arg(gmicConfigPath(false)).arg("gmic_qt_faves")); QFile file(filename); if (file.exists()) { if (file.open(QIODevice::ReadOnly)) { QString line; int lineNumber = 1; while (!(line = file.readLine()).isEmpty()) { line = line.trimmed(); if (line.startsWith("{")) { line.remove(QRegularExpression("^.")).remove(QRegularExpression(".$")); QList list = line.split("}{"); for (QString & str : list) { str.replace(QChar(gmic_lbrace), QString("{")); str.replace(QChar(gmic_rbrace), QString("}")); // (29 == gmic_newline) until gmic version 2.7.1 str.replace(QChar(29), QString("\n")); } if (list.size() >= 4) { FavesModel::Fave fave; fave.setName(list.front()); fave.setOriginalName(list[1]); fave.setCommand(list[2]); fave.setPreviewCommand(list[3]); list.pop_front(); list.pop_front(); list.pop_front(); list.pop_front(); fave.setDefaultValues(list); fave.build(); _model.addFave(fave); } else { Logger::log(QString("Loading failed for fave at %1:%2").arg(file.fileName()).arg(lineNumber)); } } ++lineNumber; } } else { Logger::error("Fave loading failed. Cannot open " + filename); } } } QString FavesModelReader::gmicGTKFavesFilename() { return QString("%1%2").arg(gmicConfigPath(false)).arg("gimp_faves"); } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FavesModelReader.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FavesModelReader.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FAVESMODELREADER_H #define GMIC_QT_FAVESMODELREADER_H #include #include "FilterSelector/FavesModel.h" class QByteArray; namespace GmicQt { class FavesModelReader { public: FavesModelReader(FavesModel & model); void importFavesFromGmicGTK(); void loadFaves(); static QString gmicGTKFavesFilename(); static bool gmicGTKFaveFileAvailable(); private: static FavesModel::Fave jsonObjectToFave(const QJsonObject & object); FavesModel & _model; }; } // namespace GmicQt #endif // GMIC_QT_FAVESMODELREADER_H ================================================ FILE: src/FilterSelector/FavesModelWriter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FavesModelWriter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FavesModelWriter.h" #include #include #include #include #include #include #include #include #include "Logger.h" #include "Utils.h" namespace GmicQt { FavesModelWriter::FavesModelWriter(const FavesModel & model) : _model(model) {} FavesModelWriter::~FavesModelWriter() = default; void FavesModelWriter::writeFaves() { QString jsonFilename(QString("%1%2").arg(gmicConfigPath(true)).arg("gmic_qt_faves.json")); // Create JSON array QJsonArray array; FavesModel::const_iterator itFave = _model.cbegin(); while (itFave != _model.cend()) { QJsonObject object = faveToJsonObject(*itFave); array.append(object); ++itFave; } if (array.isEmpty() && (QFileInfo(jsonFilename).size() > 10)) { // Backup QFile::copy(jsonFilename, jsonFilename + ".bak"); } // Save JSON array if (safelyWrite(QJsonDocument(array).toJson(), jsonFilename)) { // Cleanup 2.0.0 pre-release files QString obsoleteFilename(QString("%1%2").arg(gmicConfigPath(false)).arg("gmic_qt_faves")); QFile::remove(obsoleteFilename); QFile::remove(obsoleteFilename + ".bak"); } else { Logger::error("Cannot write fave file " + jsonFilename); } } QJsonObject FavesModelWriter::faveToJsonObject(const FavesModel::Fave & fave) { QJsonObject object; object["Name"] = fave.name(); object["originalName"] = fave.originalName(); object["command"] = fave.command(); object["preview"] = fave.previewCommand(); QJsonArray params; for (const QString & str : fave.defaultValues()) { params.push_back(str); } object["defaultParameters"] = params; QJsonArray visibilities; for (const int & visibility : fave.defaultVisibilityStates()) { visibilities.push_back(visibility); } object["defaultVisibilities"] = visibilities; return object; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FavesModelWriter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FavesModelWriter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FAVESMODELWRITER_H #define GMIC_QT_FAVESMODELWRITER_H #include #include "FilterSelector/FavesModel.h" class QByteArray; namespace GmicQt { class FavesModelWriter { public: FavesModelWriter(const FavesModel & model); ~FavesModelWriter(); void writeFaves(); private: static QJsonObject faveToJsonObject(const FavesModel::Fave & fave); const FavesModel & _model; }; } // namespace GmicQt #endif // GMIC_QT_FAVESMODELWRITER_H ================================================ FILE: src/FilterSelector/FilterTagMap.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTagMap.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterTagMap.h" #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "GmicQt.h" #include "Logger.h" #include "Utils.h" namespace GmicQt { QMap FiltersTagMap::_hashesToColors; TagColorSet FiltersTagMap::filterTags(const QString & hash) { auto it = _hashesToColors.find(hash); if (it == _hashesToColors.end()) { return TagColorSet::Empty; } return it.value(); } void FiltersTagMap::setFilterTags(const QString & hash, const TagColorSet & colors) { if (colors.isEmpty()) { _hashesToColors.remove(hash); return; } _hashesToColors[hash] = colors; } void FiltersTagMap::load() { _hashesToColors.clear(); QString jsonFilename = QString("%1%2").arg(gmicConfigPath(false), FILTERS_TAGS_FILENAME); QFile jsonFile(jsonFilename); if (!jsonFile.exists()) { return; } if (jsonFile.open(QFile::ReadOnly)) { QJsonDocument jsonDoc; QByteArray allFile = jsonFile.readAll(); if (allFile.startsWith("{")) { // Was created in debug mode jsonDoc = QJsonDocument::fromJson(allFile); } else { jsonDoc = QJsonDocument::fromJson(qUncompress(allFile)); } if (jsonDoc.isNull()) { Logger::warning(QString("Cannot parse ") + jsonFilename); Logger::warning("Filter tags are lost!"); } else { if (!jsonDoc.isObject()) { Logger::error(QString("JSON file format is not correct (") + jsonFilename + ")"); } else { QJsonObject documentObject = jsonDoc.object(); for (QJsonObject::const_iterator it = documentObject.constBegin(); // it != documentObject.constEnd(); // ++it) { _hashesToColors[it.key()] = TagColorSet(it.value().toInt()); } } } } else { Logger::error("Cannot open " + jsonFilename); Logger::error("Tags cannot be restored"); } } void FiltersTagMap::save() { QJsonObject documentObject; auto it = _hashesToColors.begin(); while (it != _hashesToColors.end()) { documentObject.insert(it.key(), QJsonValue(int(it.value().mask()))); ++it; } QJsonDocument jsonDoc(documentObject); QString jsonFilename = QString("%1%2").arg(gmicConfigPath(true), FILTERS_TAGS_FILENAME); if (QFile::exists(jsonFilename)) { QString bakFilename = QString("%1%2").arg(gmicConfigPath(false), FILTERS_TAGS_FILENAME ".bak"); QFile::remove(bakFilename); QFile::copy(jsonFilename, bakFilename); } #ifdef _GMIC_QT_DEBUG_ const bool ok = safelyWrite(jsonDoc.toJson(), jsonFilename); #else const bool ok = safelyWrite(qCompress(jsonDoc.toJson(QJsonDocument::Compact)), jsonFilename); #endif if (!ok) { Logger::error("Cannot write " + jsonFilename); Logger::error("Parameters cannot be saved"); } } TagColorSet FiltersTagMap::usedColors(int * count) { TagColorSet all; auto it = _hashesToColors.cbegin(); if (count) { memset(count, 0, sizeof(int) * int(TagColor::Count)); while (it != _hashesToColors.cend()) { TagColorSet colors = it.value(); for (TagColor color : colors) { ++count[int(color)]; } all |= colors; ++it; } } else { while (it != _hashesToColors.cend()) { all |= it.value(); ++it; } } return all; } void FiltersTagMap::removeAllTags(TagColor color) { QList toBeRemoved; auto it = _hashesToColors.begin(); while (it != _hashesToColors.end()) { it.value() -= color; if (it.value().isEmpty()) { toBeRemoved.push_back(it.key()); } ++it; } for (const QString & hash : toBeRemoved) { _hashesToColors.remove(hash); } } void FiltersTagMap::clearFilterTag(const QString & hash, TagColor color) { auto it = _hashesToColors.find(hash); if (it == _hashesToColors.end()) { return; } it.value() -= color; if (it.value().isEmpty()) { _hashesToColors.erase(it); } } void FiltersTagMap::setFilterTag(const QString & hash, TagColor color) { _hashesToColors[hash] += color; } void FiltersTagMap::toggleFilterTag(const QString & hash, TagColor color) { _hashesToColors[hash].toggle(color); } void FiltersTagMap::remove(const QString & hash) { _hashesToColors.remove(hash); } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FilterTagMap.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTagMap.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERTAGMAP_H #define GMIC_QT_FILTERTAGMAP_H #include #include #include #include "Tags.h" namespace GmicQt { class FiltersTagMap { public: static TagColorSet filterTags(const QString & hash); static void setFilterTags(const QString & hash, const TagColorSet &); static void load(); static void save(); static TagColorSet usedColors(int * count = nullptr); static void removeAllTags(TagColor color); static void clearFilterTag(const QString & hash, TagColor color); static void setFilterTag(const QString & hash, TagColor color); static void toggleFilterTag(const QString & hash, TagColor color); protected: private: static QMap _hashesToColors; // TODO : Clean non existings hashes static void remove(const QString & hash); FiltersTagMap() = delete; }; } // namespace GmicQt #endif // GMIC_QT_FILTERTAGMAP_H ================================================ FILE: src/FilterSelector/FiltersModel.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModel.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FiltersModel.h" #include #include #include #include "Common.h" #include "FilterTextTranslator.h" #include "Globals.h" #include "GmicQt.h" #include "HtmlTranslator.h" #include "Misc.h" namespace GmicQt { const size_t FiltersModel::NoIndex = std::numeric_limits::max(); void FiltersModel::clear() { _hash2filter.clear(); } void FiltersModel::addFilter(const FiltersModel::Filter & filter) { _hash2filter[filter.hash()] = filter; } void FiltersModel::flush() { qDebug() << "Filters\n======="; for (const Filter & filter : (*this)) { qDebug() << "[" << filter.path() << "]" << filter.name(); } } size_t FiltersModel::filterCount() const { return _hash2filter.size(); } size_t FiltersModel::notTestingFilterCount() const { const_iterator it = cbegin(); size_t result = 0; while (it != cend()) { const QList & path = it->path(); if (!path.startsWith("Testing")) { ++result; } ++it; } return result; } const FiltersModel::Filter & FiltersModel::getFilterFromHash(const QString & hash) const { Q_ASSERT_X(_hash2filter.contains(hash), "FiltersModel::getFilterFromHash()", "Hash not found"); return _hash2filter.find(hash).value(); } FiltersModel::const_iterator FiltersModel::findFilterFromAbsolutePath(const QString & path) const { QString plainName = filterFullPathBasename(path); for (auto it = cbegin(); it != cend(); ++it) { // First test on plainText as plain(fullPath) is not immediate to compute if ((it->plainText() == plainName) && (HtmlTranslator::html2txt(it->absolutePathNoTags()) == path)) { return it; } } return cend(); } bool FiltersModel::contains(const QString & hash) const { return (_hash2filter.find(hash) != _hash2filter.cend()); } void FiltersModel::removePath(const QList & path) { QList matchingHashes; for (const Filter & filter : (*this)) { if (filter.matchFullPath(path)) { matchingHashes.push_back(filter.hash()); } } for (const QString & hash : matchingHashes) { _hash2filter.remove(hash); } } FiltersModel::Filter::Filter() { _previewFactor = PreviewFactorAny; _isAccurateIfZoomed = false; _previewFromFullImage = false; _isWarning = false; } FiltersModel::Filter & FiltersModel::Filter::setName(const QString & name) { _name = name; _plainText = HtmlTranslator::html2txt(name, true); _translatedPlainText = HtmlTranslator::html2txt(FilterTextTranslator::translate(name)); return *this; } FiltersModel::Filter & FiltersModel::Filter::setCommand(const QString & command) { _command = command; return *this; } FiltersModel::Filter & FiltersModel::Filter::setPreviewCommand(const QString & previewCommand) { _previewCommand = previewCommand; return *this; } FiltersModel::Filter & FiltersModel::Filter::setParameters(const QString & parameters) { _parameters = parameters; return *this; } FiltersModel::Filter & FiltersModel::Filter::setPreviewFactor(float factor) { _previewFactor = factor; return *this; } FiltersModel::Filter & FiltersModel::Filter::setAccurateIfZoomed(bool accurate) { _isAccurateIfZoomed = accurate; return *this; } FiltersModel::Filter & FiltersModel::Filter::setPreviewFromFullImage(bool on) { _previewFromFullImage = on; return *this; } FiltersModel::Filter & FiltersModel::Filter::setPath(const QList & path) { _path = path; _plainPath.clear(); _translatedPlainPath.clear(); for (const QString & str : _path) { _plainPath.push_back(HtmlTranslator::html2txt(str, true)); _translatedPlainPath.push_back(HtmlTranslator::html2txt(FilterTextTranslator::translate(str), true)); } return *this; } FiltersModel::Filter & FiltersModel::Filter::setWarningFlag(bool flag) { _isWarning = flag; return *this; } FiltersModel::Filter & FiltersModel::Filter::setDefaultInputMode(InputMode mode) { _defaultInputMode = mode; return *this; } FiltersModel::Filter & FiltersModel::Filter::build() { // // Caution : This code is duplicated in FavesModel::Fave::build() to // compute the originalHash of a Fave. // QCryptographicHash hash(QCryptographicHash::Md5); hash.addData(_name.toLocal8Bit()); hash.addData(_command.toLocal8Bit()); hash.addData(_previewCommand.toLocal8Bit()); _hash = hash.result().toHex(); return *this; } const QString & FiltersModel::Filter::name() const { return _name; } const QString & FiltersModel::Filter::plainText() const { return _plainText; } const QString & FiltersModel::Filter::translatedPlainText() const { return _translatedPlainText; } const QList & FiltersModel::Filter::path() const { return _path; } const QString FiltersModel::Filter::absolutePathNoTags() const { return filterFullPathWithoutTags(_path, _name); } const QString & FiltersModel::Filter::hash() const { return _hash; } QString FiltersModel::Filter::hash236() const { QCryptographicHash hash(QCryptographicHash::Md5); QString lowerName(_name); downcaseCommandTitle(lowerName); hash.addData(lowerName.toLocal8Bit()); hash.addData(_command.toLocal8Bit()); hash.addData(_previewCommand.toLocal8Bit()); return hash.result().toHex(); } const QString & FiltersModel::Filter::command() const { return _command; } const QString & FiltersModel::Filter::previewCommand() const { return _previewCommand; } const QString & FiltersModel::Filter::parameters() const { return _parameters; } float FiltersModel::Filter::previewFactor() const { return _previewFactor; } bool FiltersModel::Filter::isAccurateIfZoomed() const { return _isAccurateIfZoomed; } bool FiltersModel::Filter::previewFromFullImage() const { return _previewFromFullImage; } bool FiltersModel::Filter::isWarning() const { return _isWarning; } InputMode FiltersModel::Filter::defaultInputMode() const { return _defaultInputMode; } bool FiltersModel::Filter::matchKeywords(const QList & keywords) const { QList::const_iterator itKeyword = keywords.cbegin(); while (itKeyword != keywords.cend()) { // Check that this keyword is present, either in filter name or in its path const QString & keyword = *itKeyword; bool keywordInPath = false; QList::const_iterator itPath = _translatedPlainPath.cbegin(); while (itPath != _translatedPlainPath.cend() && !keywordInPath) { keywordInPath = itPath->contains(keyword, Qt::CaseInsensitive); ++itPath; } if (!keywordInPath && !_translatedPlainText.contains(keyword, Qt::CaseInsensitive)) { return false; } ++itKeyword; } return true; } bool FiltersModel::Filter::matchFullPath(const QList & pathToMatch) const { QList::const_iterator it = _plainPath.cbegin(); QList::const_iterator itToMatch = pathToMatch.cbegin(); while ((it != _plainPath.cend()) && (itToMatch != pathToMatch.cend()) && (*it == *itToMatch)) { ++it; ++itToMatch; } return (itToMatch == pathToMatch.cend()) || ((it == _plainPath.cend()) && (itToMatch != pathToMatch.cend()) && (_plainText == *itToMatch)); } FiltersModel::const_iterator::const_iterator(const QMap::const_iterator & iterator) { _mapIterator = iterator; } const FiltersModel::Filter & FiltersModel::const_iterator::operator*() const { return _mapIterator.value(); } FiltersModel::const_iterator & FiltersModel::const_iterator::operator++() { ++_mapIterator; return *this; } FiltersModel::const_iterator FiltersModel::const_iterator::operator++(int) { FiltersModel::const_iterator current(*this); ++(*this); return current; } const FiltersModel::Filter * FiltersModel::const_iterator::operator->() const { return &(_mapIterator.value()); } bool FiltersModel::const_iterator::operator!=(const FiltersModel::const_iterator & other) const { return _mapIterator != other._mapIterator; } bool FiltersModel::const_iterator::operator==(const FiltersModel::const_iterator & other) const { return _mapIterator == other._mapIterator; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersModel.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModel.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSMODEL_H #define GMIC_QT_FILTERSMODEL_H #include #include #include #include #include #include "GmicQt.h" class FiltersModelBinaryReader; class FiltersModelBinaryWriter; namespace GmicQt { class FiltersModel { friend class FiltersModelBinaryReader; friend class FiltersModelBinaryWriter; public: class Filter { friend class FiltersModelBinaryReader; friend class FiltersModelBinaryWriter; public: Filter(); Filter & setName(const QString & name); Filter & setCommand(const QString & command); Filter & setPreviewCommand(const QString & previewCommand); Filter & setParameters(const QString & parameters); Filter & setPreviewFactor(float factor); Filter & setAccurateIfZoomed(bool accurate); Filter & setPreviewFromFullImage(bool on); Filter & setPath(const QList & path); Filter & setWarningFlag(bool flag); Filter & setDefaultInputMode(InputMode); Filter & build(); const QString & name() const; const QString & plainText() const; const QString & translatedPlainText() const; const QList & path() const; const QString absolutePathNoTags() const; const QString & hash() const; QString hash236() const; const QString & command() const; const QString & previewCommand() const; const QString & parameters() const; float previewFactor() const; bool isAccurateIfZoomed() const; bool previewFromFullImage() const; bool isWarning() const; InputMode defaultInputMode() const; bool matchKeywords(const QList & keywords) const; bool matchFullPath(const QList & path) const; private: QString _name; QString _plainText; QString _translatedPlainText; QList _path; QList _plainPath; QList _translatedPlainPath; QString _command; QString _previewCommand; InputMode _defaultInputMode; QString _parameters; float _previewFactor; bool _isAccurateIfZoomed; bool _previewFromFullImage; QString _hash; bool _isWarning; }; FiltersModel() = default; ~FiltersModel() = default; public: void clear(); void addFilter(const Filter & filter); void flush(); size_t filterCount() const; size_t notTestingFilterCount() const; const Filter & getFilterFromHash(const QString & hash) const; bool contains(const QString & hash) const; static const size_t NoIndex; void removePath(const QList & path); class const_iterator { public: const_iterator(const QMap::const_iterator & iterator); const Filter & operator*() const; const_iterator & operator++(); const_iterator operator++(int); const Filter * operator->() const; bool operator!=(const FiltersModel::const_iterator & other) const; bool operator==(const FiltersModel::const_iterator & other) const; private: QMap::const_iterator _mapIterator; }; const_iterator begin() const { return _hash2filter.cbegin(); } const_iterator end() const { return _hash2filter.cend(); } const_iterator cbegin() const { return _hash2filter.cbegin(); } const_iterator cend() const { return _hash2filter.cend(); } const_iterator findFilterFromAbsolutePath(const QString & path) const; private: QMap _hash2filter; }; } // namespace GmicQt #endif // GMIC_QT_FILTERSMODEL_H ================================================ FILE: src/FilterSelector/FiltersModelBinaryReader.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModelBinaryReader.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FiltersModelBinaryReader.h" #include #include #include #include #include "Common.h" #include "FilterSelector/FiltersModel.h" #include "Logger.h" namespace GmicQt { FiltersModelBinaryReader::FiltersModelBinaryReader(FiltersModel & model) : _model(model) {} bool FiltersModelBinaryReader::read(const QString & filename) { TIMING; QFile file(filename); if (!file.open(QFile::ReadOnly)) { return false; } QDataStream stream(&file); QByteArray hash; if (!readHeader(stream, hash)) { return false; } #define READ_STRING(STR) \ stream >> array; \ STR = QString::fromUtf8(array) FiltersModel::Filter filter; QByteArray array; quint8 inputMode; while (!stream.atEnd()) { READ_STRING(filter._name); READ_STRING(filter._plainText); READ_STRING(filter._translatedPlainText); readStringList(stream, filter._path); readStringList(stream, filter._plainPath); readStringList(stream, filter._translatedPlainPath); READ_STRING(filter._command); READ_STRING(filter._previewCommand); stream >> inputMode; filter._defaultInputMode = InputMode(inputMode); READ_STRING(filter._parameters); stream >> filter._previewFactor; stream >> filter._isAccurateIfZoomed; stream >> filter._previewFromFullImage; READ_STRING(filter._hash); stream >> filter._isWarning; _model._hash2filter[filter._hash] = filter; } TIMING; return true; } QByteArray FiltersModelBinaryReader::readHash(const QString & filename) { QByteArray hash; QFile file(filename); if (file.open(QFile::ReadOnly)) { QDataStream stream(&file); readHeader(stream, hash); } return hash; } bool FiltersModelBinaryReader::readHeader(QDataStream & stream, QByteArray & hash) { quint32 magic; stream >> magic; if (magic != (quint32)0x03300330) { Logger::warning("Filters binary cache: wrong magic number"); return false; } quint32 version; stream >> version; if (version <= (quint32)100) { stream.setVersion(QDataStream::Qt_5_0); } else { Logger::warning("Filters binary cache: unsupported version"); return false; } stream >> hash; if (hash.isEmpty()) { Logger::warning("Filters binary cache: cannot read hash"); return false; } return true; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersModelBinaryReader.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModelBinaryReader.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include #include #include #include #ifndef GMIC_QT_FILTERSMODELBINARYREADER_H #define GMIC_QT_FILTERSMODELBINARYREADER_H namespace GmicQt { class FiltersModel; class FiltersModelBinaryReader { public: FiltersModelBinaryReader(FiltersModel & model); bool read(const QString & filename); static QByteArray readHash(const QString & filename); private: FiltersModel & _model; static bool readHeader(QDataStream & stream, QByteArray & hash); inline static void readStringList(QDataStream & stream, QList & list); }; void FiltersModelBinaryReader::readStringList(QDataStream & stream, QList & list) { list.clear(); quint8 size; stream >> size; QByteArray array; while (size--) { stream >> array; list.push_back(QString::fromUtf8(array)); } } } // namespace GmicQt #endif // GMIC_QT_FILTERSMODELBINARYREADER_H ================================================ FILE: src/FilterSelector/FiltersModelBinaryWriter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModelBinaryReader.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FiltersModelBinaryWriter.h" #include "Common.h" #include "FilterSelector/FiltersModel.h" #include "GmicQt.h" #include #include #include #include namespace GmicQt { FiltersModelBinaryWriter::FiltersModelBinaryWriter(const FiltersModel & model) : _model(model) {} bool FiltersModelBinaryWriter::write(const QString & filename, const QByteArray & hash) { TIMING; QFile file(filename); if (!file.open(QFile::WriteOnly)) { return false; } QDataStream stream(&file); stream << (quint32)0x03300330; stream << (quint32)100; stream.setVersion(QDataStream::Qt_5_0); stream << hash; QMap::const_iterator it = _model._hash2filter.cbegin(); const QMap::const_iterator end = _model._hash2filter.cend(); while (it != end) { stream << it.value()._name.toUtf8(); stream << it.value()._plainText.toUtf8(); stream << it.value()._translatedPlainText.toUtf8(); writeStringList(it.value()._path, stream); writeStringList(it.value()._plainPath, stream); writeStringList(it.value()._translatedPlainPath, stream); stream << it.value()._command.toUtf8(); stream << it.value()._previewCommand.toUtf8(); stream << quint8(it.value()._defaultInputMode); stream << it.value()._parameters.toUtf8(); stream << it.value()._previewFactor; stream << it.value()._isAccurateIfZoomed; stream << it.value()._previewFromFullImage; stream << it.value()._hash.toUtf8(); stream << it.value()._isWarning; ++it; } TIMING; return true; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersModelBinaryWriter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModelBinaryWriter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSMODELBINARYWRITER_H #define GMIC_QT_FILTERSMODELBINARYWRITER_H class QByteArray; #include #include #include namespace GmicQt { class FiltersModel; class FiltersModelBinaryWriter { public: FiltersModelBinaryWriter(const FiltersModel & model); bool write(const QString & filename, const QByteArray & hash); private: static inline void writeStringList(const QList & list, QDataStream & stream); const FiltersModel & _model; }; void FiltersModelBinaryWriter::writeStringList(const QList & list, QDataStream & stream) { stream << (quint8)list.size(); for (const QString & str : list) { stream << str.toUtf8(); } } } // namespace GmicQt #endif // GMIC_QT_FILTERSMODELBINARYWRITER_H ================================================ FILE: src/FilterSelector/FiltersModelReader.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModelReader.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FiltersModelReader.h" #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "FilterSelector/FiltersModel.h" #include "Globals.h" #include "GmicQt.h" #include "LanguageSettings.h" #include "Logger.h" namespace { const QChar CHAR_OPENING_PARENTHESIS('('); const QChar CHAR_CLOSING_PARENTHESIS(')'); const QChar CHAR_SPACE(' '); const QChar CHAR_TAB('\t'); const QChar CHAR_COLON(':'); const QChar CHAR_UNDERSCORE('_'); const QChar CHAR_CROSS_SIGN('#'); const QChar CHAR_NEWLINE('\n'); const QString AT_GUI("#@gui"); #ifdef __GNUC__ inline bool isSpace(const QChar & c) __attribute__((always_inline)); inline bool isSpace(const char c) __attribute__((always_inline)); inline void traverseSpaces(const QChar *& pc, const QChar * limit) __attribute__((always_inline)); inline void traverseSpaces(const char *& pc, const char * limit) __attribute__((always_inline)); inline bool traverseOneChar(const QChar *& pc, const QChar * limit, const QChar & c) __attribute__((always_inline)); inline bool traverseOneChar(const char *& pc, const char * limit, const char c) __attribute__((always_inline)); inline bool traverseOneCharDifferentFrom(const QChar *& pc, const QChar * limit, const QChar & c) __attribute__((always_inline)); inline void traverseCharSequenceDifferentFrom(const QChar *& pc, const QChar * limit, const QChar & c) __attribute__((always_inline)); inline bool equals(const QChar *& pc, const QChar * limit, const QString & text) __attribute__((always_inline)); #endif inline bool isSpace(const QChar & c) { return (c == CHAR_SPACE) || (c == CHAR_TAB); } inline bool isSpace(const char c) { return (c == ' ') || (c == '\t'); } inline void traverseSpaces(const QChar *& pc, const QChar * limit) { while ((pc != limit) && isSpace(*pc)) { ++pc; } } inline void traverseSpaces(const char *& pc, const char * limit) { while ((pc != limit) && isSpace(*pc)) { ++pc; } } inline bool traverseOneChar(const QChar *& pc, const QChar * limit, const QChar & c) { if ((pc != limit) && (*pc == c)) { ++pc; return true; } return false; } inline bool traverseOneChar(const char *& pc, const char * limit, const char c) { if ((pc != limit) && (*pc == c)) { ++pc; return true; } return false; } inline bool traverseOneCharDifferentFrom(const QChar *& pc, const QChar * limit, const QChar & c) { if ((pc != limit) && (*pc != c)) { ++pc; return true; } return false; } inline void traverseCharSequenceDifferentFrom(const QChar *& pc, const QChar * limit, const QChar & c) { while ((pc != limit) && (*pc != c)) { ++pc; } } inline bool traverseOneAlphabeticLetter(const QChar *& pc, const QChar * limit) { if (pc != limit) { char c = pc->toLatin1(); if (((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'))) { ++pc; return true; } } return false; } inline bool equals(const QChar *& pc, const QChar * limit, const QString & text) { const QChar * textPc = text.constData(); const QChar * textLimit = textPc + text.size(); while ((pc != limit) && (textPc != textLimit) && (*pc == *textPc)) { ++pc; ++textPc; } return (textPc == textLimit); } // "^\\s*#@gui" bool containsGuiComment(const QString & text) { const QChar * pc = text.constData(); const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); return equals(pc, limit, AT_GUI); } // "^\\s*#@gui[ ][^:]+$" bool isFolderNoLanguage(const QString & text) { const QChar * pc = text.constData(); const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, QString("#@gui "))) { return false; } if (!traverseOneCharDifferentFrom(pc, limit, CHAR_COLON)) { return false; } traverseCharSequenceDifferentFrom(pc, limit, CHAR_COLON); return (pc == limit); } // QString("^\\s*#@gui_%1[ ][^:]+$").arg(language); bool isFolderLanguage(const QString & text, const QString & language) { const QChar * pc = text.constData(); const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, QString("#@gui_"))) { return false; } if (!equals(pc, limit, language)) { return false; } if (!traverseOneChar(pc, limit, CHAR_SPACE)) { return false; } if (!traverseOneCharDifferentFrom(pc, limit, CHAR_COLON)) { return false; } traverseCharSequenceDifferentFrom(pc, limit, CHAR_COLON); return (pc == limit); } // "^\\s*#@gui[ ][^:]+[ ]*:.*" // Replaced here by "^\\s*#@gui[ ][^:]+:.*" bool isFilterNoLanguage(const QString & text) { const QChar * pc = text.constData(); const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, QString("#@gui "))) { return false; } if (!traverseOneCharDifferentFrom(pc, limit, CHAR_COLON)) { return false; } traverseCharSequenceDifferentFrom(pc, limit, CHAR_COLON); return traverseOneChar(pc, limit, CHAR_COLON); } // QString("^\\s*#@gui_%1[ ][^:]+[ ]*:.*").arg(language); // Replaced here by "^\\s*#@gui_%1[ ][^:]+:".arg(language); bool isFilterLanguage(const QString & text, const QString & language) { const QChar * pc = text.constData(); const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, QString("#@gui_"))) { return false; } if (!equals(pc, limit, language)) { return false; } if (!traverseOneChar(pc, limit, CHAR_SPACE)) { return false; } if (!traverseOneCharDifferentFrom(pc, limit, CHAR_COLON)) { return false; } traverseCharSequenceDifferentFrom(pc, limit, CHAR_COLON); return traverseOneChar(pc, limit, CHAR_COLON); } // "\\s*:\\s*([xX.*+vViI-])\\s*$" bool containsInputMode(const QString & text, QString & inputMode) { const QChar * pc = text.constData(); const QChar * limit = pc + text.size(); traverseCharSequenceDifferentFrom(pc, limit, CHAR_COLON); if (!traverseOneChar(pc, limit, CHAR_COLON)) { return false; } traverseSpaces(pc, limit); if (pc != limit) { char c = pc->toLatin1(); if (strchr("xX.*+vViI-", c)) { inputMode = *pc; return true; } } return false; } // QString("^\\s*#@gui_%1[ ]+hide\\((.*)\\)").arg(language)); // Capture 'path' bool containsHidePath(const QString & text, const QString & language, QString & path) { const QChar * begin = text.constData(); const QChar * pc = begin; const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, AT_GUI)) { return false; } if (!traverseOneChar(pc, limit, CHAR_UNDERSCORE)) { return false; } if (!equals(pc, limit, language)) { return false; } if (!traverseOneChar(pc, limit, CHAR_SPACE)) { return false; } traverseSpaces(pc, limit); if (!equals(pc, limit, QString("hide("))) { return false; } const QChar * captureBegin = pc; traverseCharSequenceDifferentFrom(pc, limit, CHAR_CLOSING_PARENTHESIS); if ((pc == limit) || (*pc != CHAR_CLOSING_PARENTHESIS)) { return false; } const QChar * captureEnd = pc; path = QString(captureBegin, captureEnd - captureBegin); return true; } // "^\\s*#" bool containsLeadingSpaceAndCrossSign(const char * text, const char * limit) { traverseSpaces(text, limit); return traverseOneChar(text, limit, '#'); } // Remove "\\s*:.*$" void removeColonAndText(QString & text) { int i = text.indexOf(':'); while ((i > 0) && isSpace(text[i - 1])) { --i; } text.remove(i, text.size() - i); } // Remove "^\\s*#@gui[_a-zA-Z]{0,3}[ ]" void removeAtGuiLangPrefix(QString & text) { const QChar * begin = text.constData(); const QChar * pc = begin; const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, AT_GUI)) { return; } if (traverseOneChar(pc, limit, CHAR_UNDERSCORE)) { traverseOneAlphabeticLetter(pc, limit); traverseOneAlphabeticLetter(pc, limit); } if (!traverseOneChar(pc, limit, CHAR_SPACE)) { return; } text.remove(0, pc - begin); } // "^\\s*#@gui[_a-zA-Z]{0,3}[ ][^:]+:[ ]*" void removeAtGuiTextAndColon(QString & text) { const QChar * begin = text.constData(); const QChar * pc = begin; const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, AT_GUI)) { return; } if (traverseOneChar(pc, limit, CHAR_UNDERSCORE)) { traverseOneAlphabeticLetter(pc, limit); traverseOneAlphabeticLetter(pc, limit); } if (!traverseOneChar(pc, limit, CHAR_SPACE)) { return; } if (!traverseOneCharDifferentFrom(pc, limit, CHAR_COLON)) { return; } traverseCharSequenceDifferentFrom(pc, limit, CHAR_COLON); if (!traverseOneChar(pc, limit, CHAR_COLON)) { return; } traverseSpaces(pc, limit); text.remove(0, pc - begin); } // "^\\s*#@gui[_a-zA-Z]{0,3}[ ]*:[ ]*" void removeAtGuiSpacesAndColon(QString & text) { const QChar * begin = text.constData(); const QChar * pc = begin; const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, AT_GUI)) { return; } if (traverseOneChar(pc, limit, CHAR_UNDERSCORE)) { traverseOneAlphabeticLetter(pc, limit); traverseOneAlphabeticLetter(pc, limit); } traverseSpaces(pc, limit); if (!traverseOneChar(pc, limit, CHAR_COLON)) { return; } traverseSpaces(pc, limit); text.remove(0, pc - begin); } // "^\\s*" void removeLeadingSpaces(QString & text) { const QChar * begin = text.constData(); const QChar * pc = begin; const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (pc != begin) { text.remove(0, pc - begin); } } // " .*" void removeSpaceAndText(QString & text) { int index = text.indexOf(CHAR_SPACE); if (index != -1) { text.remove(index, text.size() - index); } } // "\\s*:\\s*([xX.*+vViI-])\\s*$" // Capture void removeInputMode(QString & text) { int index = text.indexOf(CHAR_COLON); if (index != -1) { while ((index > 0) && (text[index - 1] == CHAR_SPACE)) { --index; } text.remove(index, text.size() - index); } } // Replace QRegExp(" .*") by "[ ]?:" to obtain #@gui[ ]?: or #@gui_fr[ ]?: // then check the regexp "^\s*#@gui[ ]?:" or "^\s*#@gui_fr[ ]?:" // Check \s*PREFIX[ ]?: (PREFIX is e.g. #@gui or #@gui_fr) bool isPrefixAndColon(const QString & text, const QString & prefix) { const QChar * begin = text.constData(); const QChar * pc = begin; const QChar * limit = pc + text.size(); traverseSpaces(pc, limit); if (!equals(pc, limit, prefix)) { return false; } traverseOneChar(pc, limit, CHAR_SPACE); return traverseOneChar(pc, limit, CHAR_COLON); } } // namespace namespace GmicQt { FiltersModelReader::FiltersModelReader(FiltersModel & model) : _model(model) {} void FiltersModelReader::parseFiltersDefinitions(const QByteArray & stdlibArray) { TIMING; const char * stdlib = stdlibArray.constData(); const char * stdLibLimit = stdlib + stdlibArray.size(); QList filterPath; QString language = LanguageSettings::configuredTranslator(); if (language.isEmpty()) { language = "void"; } // Use _en locale if no localization for the language is found. QByteArray localePrefix = QString("#@gui_%1").arg(language).toLocal8Bit(); if (!textIsPrecededBySpacesInSomeLineOfArray(localePrefix, stdlibArray)) { language = "en"; } QString buffer = readBufferLine(stdlib, stdLibLimit); QString line; QVector hiddenPaths; const QChar WarningPrefix('!'); do { line = buffer.trimmed(); if (containsGuiComment(line)) { QString path; if (containsHidePath(line, language, path)) { hiddenPaths.push_back(path); buffer = readBufferLine(stdlib, stdLibLimit); } else if (isFolderNoLanguage(line) || isFolderLanguage(line, language)) { // // A folder // QString folderName = line; removeAtGuiLangPrefix(folderName); while (folderName.startsWith("_") && !filterPath.isEmpty()) { folderName.remove(0, 1); filterPath.pop_back(); } while (folderName.startsWith("_")) { folderName.remove(0, 1); } if (!folderName.isEmpty()) { filterPath.push_back(folderName); } buffer = readBufferLine(stdlib, stdLibLimit); } else if (isFilterNoLanguage(line) || isFilterLanguage(line, language)) { // // A filter // QString filterName = line; removeColonAndText(filterName); removeAtGuiLangPrefix(filterName); const bool warning = filterName.startsWith(WarningPrefix); if (warning) { filterName.remove(0, 1); } QString filterCommands = line; removeAtGuiTextAndColon(filterCommands); // Extract default input mode InputMode defaultInputMode = InputMode::Unspecified; QString inputMode; if (containsInputMode(filterCommands, inputMode)) { removeInputMode(filterCommands); defaultInputMode = symbolToInputMode(inputMode); } QList commands = filterCommands.split(","); QString filterCommand = commands[0].trimmed(); if (commands.isEmpty()) { commands.push_back("_none_"); } if (commands.size() == 1) { commands.push_back(commands.front()); } QList preview = commands[1].trimmed().split("("); float previewFactor = PreviewFactorAny; bool accurateIfZoomed = true; bool previewFromFullImage = false; if (preview.size() >= 2) { if (preview[1].endsWith("+")) { accurateIfZoomed = true; preview[1].chop(1); } else if (preview[1].endsWith("*")) { accurateIfZoomed = true; previewFromFullImage = true; preview[1].chop(1); } else { accurateIfZoomed = false; } bool ok = false; const int closingParenthesisIndex = preview[1].indexOf(QChar(')')); if (closingParenthesisIndex != -1) { preview[1].remove(closingParenthesisIndex, preview[1].size() - closingParenthesisIndex); } previewFactor = preview[1].toFloat(&ok); if (!ok) { Logger::error(QString("Cannot parse zoom factor for filter [%1]:\n%2").arg(filterName).arg(line)); previewFactor = PreviewFactorAny; } previewFactor = std::abs(previewFactor); } QString filterPreviewCommand = preview[0].trimmed(); QString start = line; removeLeadingSpaces(start); removeSpaceAndText(start); // #@gui or #@gui_fr // Read parameters QString parameters; do { buffer = readBufferLine(stdlib, stdLibLimit); if (isPrefixAndColon(buffer, start)) { // QString parameterLine = buffer; removeAtGuiSpacesAndColon(parameterLine); parameters += parameterLine; } } while ((stdlib != stdLibLimit) // && !isFolderNoLanguage(buffer) // && !isFolderLanguage(buffer, language) // && !isFilterNoLanguage(buffer) // && !isFilterLanguage(buffer, language)); FiltersModel::Filter filter; filter.setName(filterName); filter.setCommand(filterCommand); filter.setPreviewCommand(filterPreviewCommand); filter.setDefaultInputMode(defaultInputMode); filter.setPreviewFactor(previewFactor); filter.setAccurateIfZoomed(accurateIfZoomed); filter.setPreviewFromFullImage(previewFromFullImage); filter.setParameters(parameters); filter.setPath(filterPath); filter.setWarningFlag(warning); filter.build(); _model.addFilter(filter); } else { buffer = readBufferLine(stdlib, stdLibLimit); } } else { buffer = readBufferLine(stdlib, stdLibLimit); } } while (!buffer.isEmpty()); // Remove hidden filters from the model for (const QString & path : hiddenPaths) { const size_t count = _model.filterCount(); QList pathList = path.split("/", QT_SKIP_EMPTY_PARTS); _model.removePath(pathList); if (_model.filterCount() == count) { Logger::warning(QString("While hiding filter, name or path not found: \"%1\"").arg(path)); } } TIMING; } bool FiltersModelReader::textIsPrecededBySpacesInSomeLineOfArray(const QByteArray & text, const QByteArray & array) { if (text.isEmpty()) { return false; } int from = 0; int position; const char * data = array.constData(); while ((position = array.indexOf(text, from)) != -1) { int index = position - 1; while ((index >= 0) && (data[index] != '\n') && (data[index] <= ' ')) { --index; } if ((index < 0) || (data[index] == '\n')) { return true; } from = position + 1; } return false; } InputMode FiltersModelReader::symbolToInputMode(const QString & str) { if (str.length() != 1) { Logger::warning(QString("'%1' is not recognized as a default input mode (should be a single symbol/letter)").arg(str)); return InputMode::Unspecified; } switch (str.toLocal8Bit()[0]) { case 'x': case 'X': return InputMode::NoInput; case '.': return InputMode::Active; case '*': return InputMode::All; case '-': return InputMode::ActiveAndAbove; case '+': return InputMode::ActiveAndBelow; case 'V': case 'v': return InputMode::AllVisible; case 'I': case 'i': return InputMode::AllInvisible; default: Logger::warning(QString("'%1' is not recognized as a default input mode").arg(str)); return InputMode::Unspecified; } } // QString FiltersModelReader::readBufferLine(const char * & pc, const char * limit) QString FiltersModelReader::readBufferLine(const char *& ptr, const char * limit) { if (ptr == limit) { return QString(); } QString line; const char * eol = strchr(ptr, '\n'); const char * start = ptr; ptr = eol ? (eol + 1) : limit; const int lineSize = int(ptr - start); line = QString::fromUtf8(start, lineSize); if (containsLeadingSpaceAndCrossSign(start, start + lineSize)) { while (line.endsWith("\\\n")) { line.chop(2); if (!containsLeadingSpaceAndCrossSign(ptr, limit)) { line.append(CHAR_NEWLINE); break; } while (isSpace(*ptr)) { // Skip spaces ++ptr; } ++ptr; // Skip '#' eol = strchr(ptr, '\n'); start = ptr; ptr = eol ? (eol + 1) : limit; line.append(QString::fromUtf8(start, int(ptr - start))); } } return line; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersModelReader.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersModelReader.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSMODELREADER_H #define GMIC_QT_FILTERSMODELREADER_H #include #include "FilterSelector/FiltersModel.h" class QByteArray; class QBuffer; namespace GmicQt { class FiltersModelReader { public: FiltersModelReader(FiltersModel & model); void parseFiltersDefinitions(const QByteArray &stdlibArray); private: FiltersModel & _model; static QString readBufferLine(QBuffer &); static QString readBufferLine(const char *& ptr, const char * limit); static bool textIsPrecededBySpacesInSomeLineOfArray(const QByteArray & text, const QByteArray & array); static InputMode symbolToInputMode(const QString & str); }; } // namespace GmicQt #endif // GMIC_QT_FILTERSMODELREADER_H ================================================ FILE: src/FilterSelector/FiltersPresenter.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersPresenter.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FiltersPresenter.h" #include #include #include #include "Common.h" #include "FilterGuiDynamismCache.h" #include "FilterSelector/FavesModelReader.h" #include "FilterSelector/FavesModelWriter.h" #include "FilterSelector/FiltersModelBinaryWriter.h" #include "FilterSelector/FiltersModelReader.h" #include "FilterTextTranslator.h" #include "FiltersModelBinaryReader.h" #include "FiltersVisibilityMap.h" #include "Globals.h" #include "GmicStdlib.h" #include "HtmlTranslator.h" #include "Logger.h" #include "ParametersCache.h" #include "PersistentMemory.h" #include "Utils.h" #include "Widgets/InOutPanel.h" #include "Widgets/SearchFieldWidget.h" namespace GmicQt { FiltersPresenter::FiltersPresenter(QObject * parent) : QObject(parent) { _filtersView = nullptr; _searchField = nullptr; _visibleTagSelector = nullptr; } FiltersPresenter::~FiltersPresenter() { saveFaves(); } void FiltersPresenter::setFiltersView(FiltersView * filtersView) { if (_filtersView) { _filtersView->disconnect(this); } _filtersView = filtersView; connect(_filtersView, &FiltersView::filterSelected, this, &FiltersPresenter::onFilterChanged); connect(_filtersView, &FiltersView::faveRenamed, this, &FiltersPresenter::onFaveRenamed); connect(_filtersView, &FiltersView::faveRemovalRequested, this, &FiltersPresenter::removeFave); connect(_filtersView, &FiltersView::faveAdditionRequested, this, &FiltersPresenter::faveAdditionRequested); connect(_filtersView, &FiltersView::tagToggled, this, &FiltersPresenter::onTagToggled); } void FiltersPresenter::setSearchField(SearchFieldWidget * searchField) { _searchField = searchField; } void FiltersPresenter::rebuildFilterView() { rebuildFilterViewWithSelection(QList()); } void FiltersPresenter::rebuildFilterViewWithSelection(const QList & keywords) { if (!_filtersView) { return; } _filtersView->clear(); _filtersView->disableModel(); for (const FiltersModel::Filter & filter : _filtersModel) { if (filter.matchKeywords(keywords)) { _filtersView->addFilter(filter.name(), filter.hash(), filter.path(), filter.isWarning()); } } FavesModel::const_iterator itFave = _favesModel.cbegin(); while (itFave != _favesModel.cend()) { if (itFave->matchKeywords(keywords)) { _filtersView->addFave(itFave->name(), itFave->hash()); } ++itFave; } _filtersView->sort(); QString header = QObject::tr("Available filters (%1)").arg(_filtersModel.notTestingFilterCount()); _filtersView->setHeader(header); _filtersView->enableModel(); } void FiltersPresenter::clear() { _favesModel.clear(); _filtersModel.clear(); } void FiltersPresenter::readFilters() { _filtersModel.clear(); QString cacheFilename = QString("%1%2").arg(gmicConfigPath(true), FILTERS_CACHE_FILENAME); bool readFromCacheIsOK = false; if (GmicStdLib::hash() == FiltersModelBinaryReader::readHash(cacheFilename)) { readFromCacheIsOK = FiltersModelBinaryReader(_filtersModel).read(cacheFilename); } else { FilterGuiDynamismCache::clear(); } if (!readFromCacheIsOK) { FiltersModelReader filterModelReader(_filtersModel); filterModelReader.parseFiltersDefinitions(GmicStdLib::Array); // Write cache FiltersModelBinaryWriter writer(_filtersModel); writer.write(cacheFilename, GmicStdLib::hash()); } } void FiltersPresenter::readFaves() { FavesModelReader favesModelReader(_favesModel); favesModelReader.loadFaves(); } bool FiltersPresenter::allFavesAreValid() const { for (const FavesModel::Fave & fave : _favesModel) { if (!_filtersModel.contains(fave.originalHash())) { return false; } } return true; } void FiltersPresenter::restoreFaveHashLinksAfterCaseChange() { if (allFavesAreValid()) { return; } FavesModel formerFaveModel = _favesModel; FavesModel::const_iterator itFormerFave = formerFaveModel.cbegin(); bool someFavesHaveBeenRelinked = false; while (itFormerFave != formerFaveModel.cend()) { const FavesModel::Fave & fave = *itFormerFave; if (!_filtersModel.contains(fave.originalHash())) { FiltersModel::const_iterator itFilter = _filtersModel.cbegin(); while ((itFilter != _filtersModel.cend()) && (itFilter->hash236() != fave.originalHash())) { ++itFilter; } if (itFilter != _filtersModel.cend()) { _favesModel.removeFave(fave.hash()); FavesModel::Fave newFave = fave; newFave.setOriginalHash(itFilter->hash()); newFave.setOriginalName(itFilter->name()); _favesModel.addFave(newFave); QString message = QString("Fave '%1' has been relinked to filter '%2'").arg(fave.name()).arg(itFilter->name()); Logger::log(message, "information", true); someFavesHaveBeenRelinked = true; } else { QString message = QString("Could not associate Fave '%1' to an existing filter").arg(fave.name()); Logger::warning(message, true); } } ++itFormerFave; } if (someFavesHaveBeenRelinked) { saveFaves(); } } void FiltersPresenter::importGmicGTKFaves() { FavesModelReader favesModelReader(_favesModel); favesModelReader.importFavesFromGmicGTK(); } void FiltersPresenter::saveFaves() { FavesModelWriter favesModelWriter(_favesModel); favesModelWriter.writeFaves(); } void FiltersPresenter::addSelectedFilterAsNewFave(const QList & defaultValues, const QList & visibilityStates, InputOutputState inOutState) { if (_currentFilter.hash.isEmpty() || (!_filtersModel.contains(_currentFilter.hash) && !_favesModel.contains(_currentFilter.hash))) { return; } FavesModel::Fave fave; fave.setDefaultValues(defaultValues); fave.setDefaultVisibilities(visibilityStates); bool filterAlreadyHasAFave = false; if (_filtersModel.contains(_currentFilter.hash)) { const FiltersModel::Filter & filter = _filtersModel.getFilterFromHash(_currentFilter.hash); fave.setName(_favesModel.uniqueName(FilterTextTranslator::translate(filter.name()), QString())); fave.setCommand(filter.command()); fave.setPreviewCommand(filter.previewCommand()); fave.setOriginalHash(filter.hash()); fave.setOriginalName(filter.name()); filterAlreadyHasAFave = filterExistsAsFave(filter.hash()); } else { FavesModel::const_iterator faveIterator = _favesModel.findFaveFromHash(_currentFilter.hash); if (faveIterator != _favesModel.cend()) { const FavesModel::Fave & originalFave = *faveIterator; fave.setName(_favesModel.uniqueName(originalFave.name(), QString())); fave.setCommand(originalFave.command()); fave.setPreviewCommand(originalFave.previewCommand()); fave.setOriginalHash(originalFave.originalHash()); fave.setOriginalName(originalFave.originalName()); } filterAlreadyHasAFave = true; } fave.build(); FiltersVisibilityMap::setVisibility(fave.hash(), true); _favesModel.addFave(fave); ParametersCache::setValues(fave.hash(), defaultValues); ParametersCache::setVisibilityStates(fave.hash(), visibilityStates); ParametersCache::setInputOutputState(fave.hash(), inOutState, _currentFilter.defaultInputMode); if (_filtersView) { _filtersView->addFave(fave.name(), fave.hash()); _filtersView->sortFaves(); _filtersView->selectFave(fave.hash()); } saveFaves(); onFilterChanged(fave.hash()); if (filterAlreadyHasAFave) { editSelectedFaveName(); } } void FiltersPresenter::applySearchCriterion(const QString & text) { if (!_filtersView) { return; } static QString previousText; if ((!text.isEmpty() && previousText.isEmpty()) || (text.isEmpty() && previousText.isEmpty())) { _filtersView->preserveExpandedFolders(); } QList keywords = text.split(QChar(' '), QT_SKIP_EMPTY_PARTS); rebuildFilterViewWithSelection(keywords); if (text.isEmpty() && _filtersView->visibleTagColors().isEmpty()) { _filtersView->restoreExpandedFolders(); } else { _filtersView->expandAll(); } if (!_currentFilter.hash.isEmpty()) { selectFilterFromHash(_currentFilter.hash, false); } previousText = text; } void FiltersPresenter::selectFilterFromHash(QString hash, bool notify) { bool hashExists = true; if (_filtersView) { if (_favesModel.contains(hash)) { _filtersView->selectFave(hash); } else if (_filtersModel.contains(hash)) { const FiltersModel::Filter & filter = _filtersModel.getFilterFromHash(hash); _filtersView->selectActualFilter(hash, filter.path()); } else { hashExists = false; } } if (!hashExists) { hash.clear(); } setCurrentFilter(hash); if (notify) { emit filterSelectionChanged(); } } void FiltersPresenter::selectFilterFromPlainName(const QString & name) { QString faveHash; auto itFave = _favesModel.findFaveFromPlainText(name); if (itFave != _favesModel.cend()) { faveHash = itFave->hash(); } QStringList filterHashes; for (const FiltersModel::Filter & filter : _filtersModel) { if (filter.plainText() == name) { filterHashes.push_back(filter.hash()); } } QString hash; if (((!faveHash.isEmpty()) + filterHashes.size()) == 1) { if (!faveHash.isEmpty()) { hash = faveHash; if (_filtersView) { _filtersView->selectFave(hash); } } else { // filterHashes.size() == 1 hash = filterHashes.front(); if (_filtersView) { _filtersView->selectFave(hash); } } } setCurrentFilter(hash); } void FiltersPresenter::selectFilterFromCommand(const QString & command) { // We consider only the first matching filter for (const FiltersModel::Filter & filter : _filtersModel) { if (filter.command() == command) { setCurrentFilter(filter.hash()); return; } } setCurrentFilter(QString()); } void FiltersPresenter::setVisibleTagSelector(VisibleTagSelector * selector) { _visibleTagSelector = selector; connect(selector, &VisibleTagSelector::visibleColorsChanged, this, &FiltersPresenter::setVisibleTagColors); } void FiltersPresenter::setVisibleTagColors(unsigned int colors) { _filtersView->setVisibleTagColors(TagColorSet(colors)); applySearchCriterion(_searchField->text()); } void FiltersPresenter::selectFilterFromAbsolutePath(QString path) { QString hash; if (path.startsWith("/")) { static const QString FaveFolderPrefix = "/" + HtmlTranslator::html2txt(FAVE_FOLDER_TEXT) + "/"; if (path.startsWith(FaveFolderPrefix)) { path.remove(0, FaveFolderPrefix.length()); auto it = _favesModel.findFaveFromPlainText(path); if (it != _favesModel.cend()) { hash = it->hash(); if (_filtersView) { _filtersView->selectFave(hash); } } } else { auto it = _filtersModel.findFilterFromAbsolutePath(path); if (it != _filtersModel.cend()) { hash = it->hash(); if (_filtersView) { _filtersView->selectActualFilter(hash, it->path()); } } } } setCurrentFilter(hash); } void FiltersPresenter::selectFilterFromAbsolutePathOrPlainName(const QString & path) { if (path.startsWith("/")) { selectFilterFromAbsolutePath(path); } else { selectFilterFromPlainName(path); } } const FiltersPresenter::Filter & FiltersPresenter::currentFilter() const { return _currentFilter; } void FiltersPresenter::loadSettings(const QSettings & settings) { if (_filtersView) { _filtersView->loadSettings(settings); } } void FiltersPresenter::saveSettings(QSettings & settings) { if (_filtersView) { _filtersView->saveSettings(settings); } } void FiltersPresenter::setInvalidFilter() { _currentFilter.setInvalid(); } bool FiltersPresenter::isInvalidFilter() const { return _currentFilter.isInvalid(); } void FiltersPresenter::adjustViewSize() { if (_filtersView) { _filtersView->adjustTreeSize(); } } void FiltersPresenter::expandFaveFolder() { if (_filtersView) { _filtersView->expandFaveFolder(); } } void FiltersPresenter::expandPreviousSessionExpandedFolders() { if (_filtersView) { QList expandedFolderPaths = QSettings().value("Config/ExpandedFolders", QStringList()).toStringList(); _filtersView->expandFolders(expandedFolderPaths); } } void FiltersPresenter::expandAll() { if (_filtersView) { _filtersView->expandAll(); } } void FiltersPresenter::collapseAll() { if (_filtersView) { _filtersView->collapseAll(); } } const QString & FiltersPresenter::errorMessage() const { return _errorMessage; } FiltersPresenter::Filter FiltersPresenter::findFilterFromAbsolutePathOrNameInStdlib(const QString & path) { FiltersPresenter presenter(nullptr); presenter.readFaves(); presenter.readFilters(); if (path.startsWith("/")) { presenter.selectFilterFromAbsolutePath(path); } else { presenter.selectFilterFromPlainName(path); } return presenter.currentFilter(); } FiltersPresenter::Filter FiltersPresenter::findFilterFromCommandInStdlib(const QString & command) { FiltersPresenter presenter(nullptr); // presenter.readFaves(); presenter.readFilters(); presenter.selectFilterFromCommand(command); return presenter.currentFilter(); } void FiltersPresenter::removeSelectedFave() { if (_filtersView) { QString hash = _filtersView->selectedFilterHash(); removeFave(hash); } } void FiltersPresenter::editSelectedFaveName() { if (_filtersView) { _filtersView->editSelectedFaveName(); } } void FiltersPresenter::onFaveRenamed(const QString & hash, const QString & name) { Q_ASSERT_X(_favesModel.contains(hash), "onFaveRenamed()", "Hash not found"); FavesModel::Fave fave = _favesModel.getFaveFromHash(hash); _favesModel.removeFave(hash); InputMode defaultInputMode = InputMode::Unspecified; if (_filtersModel.contains(fave.originalHash())) { const FiltersModel::Filter & originalFilter = _filtersModel.getFilterFromHash(fave.originalHash()); defaultInputMode = originalFilter.defaultInputMode(); } QString newName = name; if (newName.isEmpty()) { if (_filtersModel.contains(fave.originalHash())) { const FiltersModel::Filter & originalFilter = _filtersModel.getFilterFromHash(fave.originalHash()); newName = _favesModel.uniqueName(FilterTextTranslator::translate(originalFilter.name()), QString()); } else { newName = _favesModel.uniqueName(tr("Unknown filter"), QString()); } } else { newName = _favesModel.uniqueName(newName, QString()); } fave.setName(newName); fave.build(); // Move parameters QList values = ParametersCache::getValues(hash); QList visibilityStates = ParametersCache::getVisibilityStates(hash); InputOutputState inOutState = ParametersCache::getInputOutputState(hash); ParametersCache::remove(hash); ParametersCache::setValues(fave.hash(), values); ParametersCache::setVisibilityStates(fave.hash(), visibilityStates); ParametersCache::setInputOutputState(fave.hash(), inOutState, defaultInputMode); _favesModel.addFave(fave); if (_filtersView) { _filtersView->updateFaveItem(hash, fave.hash(), fave.name()); _filtersView->sortFaves(); } saveFaves(); setCurrentFilter(fave.hash()); emit faveNameChanged(newName); } void FiltersPresenter::toggleSelectionMode(bool on) { if (_filtersView) { if (on) { _filtersView->enableSelectionMode(); } else { _filtersView->disableSelectionMode(); } } applySearchCriterion(_searchField->text()); } void FiltersPresenter::onFilterChanged(const QString & hash) { setCurrentFilter(hash); emit filterSelectionChanged(); } void FiltersPresenter::removeFave(const QString & hash) { if (hash.isEmpty() || !_favesModel.contains(hash)) { return; } ParametersCache::remove(hash); _favesModel.removeFave(hash); if (_filtersView) { _filtersView->removeFave(hash); } saveFaves(); if (_filtersView) { onFilterChanged(_filtersView->selectedFilterHash()); } } void FiltersPresenter::onTagToggled(int) { TagColorSet colors = _visibleTagSelector->selectedColors(); _visibleTagSelector->updateColors(); if (_visibleTagSelector->selectedColors() != colors) { _filtersView->setVisibleTagColors(TagColorSet::Empty); applySearchCriterion(_searchField->text()); } } bool FiltersPresenter::danglingFaveIsSelected() const { if (!_filtersView || !_filtersView->aFaveIsSelected()) { return false; } QString hash = _filtersView->selectedFilterHash(); if (_favesModel.contains(hash)) { return !_filtersModel.contains(_favesModel.getFaveFromHash(hash).originalHash()); } return false; } void FiltersPresenter::setCurrentFilter(const QString & hash) { _errorMessage.clear(); PersistentMemory::clear(); if (hash.isEmpty()) { _currentFilter.setInvalid(); } else if (_favesModel.contains(hash)) { const FavesModel::Fave & fave = _favesModel.getFaveFromHash(hash); const QString & originalHash = fave.originalHash(); if (_filtersModel.contains(originalHash)) { const FiltersModel::Filter & filter = _filtersModel.getFilterFromHash(originalHash); _currentFilter.command = fave.command(); _currentFilter.defaultParameterValues = fave.defaultValues(); _currentFilter.defaultVisibilityStates = fave.defaultVisibilityStates(); _currentFilter.defaultInputMode = filter.defaultInputMode(); _currentFilter.hash = hash; _currentFilter.isAFave = true; _currentFilter.name = fave.name(); _currentFilter.plainTextName = fave.plainText(); _currentFilter.fullPath = fave.absolutePath(); _currentFilter.parameters = filter.parameters(); _currentFilter.previewCommand = fave.previewCommand(); _currentFilter.isAccurateIfZoomed = filter.isAccurateIfZoomed(); _currentFilter.previewFromFullImage = filter.previewFromFullImage(); _currentFilter.previewFactor = filter.previewFactor(); } else { setInvalidFilter(); _errorMessage = tr("Cannot find this fave's original filter\n"); } } else if (_filtersModel.contains(hash)) { const FiltersModel::Filter & filter = _filtersModel.getFilterFromHash(hash); _currentFilter.command = filter.command(); _currentFilter.defaultParameterValues = ParametersCache::getValues(hash); // FIXME : Unused unless it's a fave. Should be renamed. _currentFilter.defaultVisibilityStates = ParametersCache::getVisibilityStates(hash); _currentFilter.defaultInputMode = filter.defaultInputMode(); _currentFilter.hash = hash; _currentFilter.isAFave = false; _currentFilter.name = filter.name(); _currentFilter.plainTextName = filter.plainText(); _currentFilter.fullPath = filter.absolutePathNoTags(); _currentFilter.parameters = filter.parameters(); _currentFilter.previewCommand = filter.previewCommand(); _currentFilter.isAccurateIfZoomed = filter.isAccurateIfZoomed(); _currentFilter.previewFromFullImage = filter.previewFromFullImage(); _currentFilter.previewFactor = filter.previewFactor(); } else { _currentFilter.setInvalid(); } } bool FiltersPresenter::filterExistsAsFave(const QString filterHash) { for (const FavesModel::Fave & fave : _favesModel) { if (fave.originalHash() == filterHash) { return true; } } return false; } void FiltersPresenter::Filter::clear() { name.clear(); command.clear(); previewCommand.clear(); parameters.clear(); defaultParameterValues.clear(); fullPath.clear(); hash.clear(); plainTextName.clear(); previewFactor = PreviewFactorAny; previewFromFullImage = false; defaultInputMode = InputMode::Unspecified; isAFave = false; } void FiltersPresenter::Filter::setInvalid() { clear(); command = "skip"; previewCommand = "skip"; } bool FiltersPresenter::Filter::isInvalid() const { return hash.isEmpty() && (command == "skip") && (previewCommand == "skip"); } bool FiltersPresenter::Filter::isValid() const { return !isInvalid(); } bool FiltersPresenter::Filter::isNoApplyFilter() const { return hash.isEmpty() || command.isEmpty() || (command == "_none_"); } bool FiltersPresenter::Filter::isNoPreviewFilter() const { return hash.isEmpty() || previewCommand.isEmpty() || (previewCommand == "_none_"); } const char * FiltersPresenter::Filter::previewFactorString() const { if (previewFactor == PreviewFactorActualSize) { return "ActualSize"; } if (previewFactor == PreviewFactorAny) { return "Any"; } if (previewFactor == PreviewFactorFullImage) { return "FullImage"; } return "float value"; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersPresenter.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersPresenter.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSPRESENTER_H #define GMIC_QT_FILTERSPRESENTER_H #include #include "FilterSelector/FavesModel.h" #include "FilterSelector/FiltersModel.h" #include "FilterSelector/FiltersView/FiltersView.h" #include "GmicQt.h" #include "InputOutputState.h" #include "Tags.h" #include "Widgets/VisibleTagSelector.h" class QSettings; namespace GmicQt { class SearchFieldWidget; class FiltersPresenter : public QObject { Q_OBJECT public: struct Filter { QString name; QString plainTextName; QString fullPath; QString command; QString previewCommand; QString parameters; QList defaultParameterValues; QList defaultVisibilityStates; InputMode defaultInputMode; QString hash; bool isAccurateIfZoomed; bool previewFromFullImage; float previewFactor; bool isAFave; void clear(); void setInvalid(); bool isInvalid() const; bool isValid() const; bool isNoApplyFilter() const; bool isNoPreviewFilter() const; const char * previewFactorString() const; }; FiltersPresenter(QObject * parent); ~FiltersPresenter() override; void setFiltersView(FiltersView * filtersView); void setSearchField(SearchFieldWidget *); void rebuildFilterView(); void rebuildFilterViewWithSelection(const QList & keywords); void clear(); void readFilters(); void readFaves(); bool allFavesAreValid() const; bool danglingFaveIsSelected() const; /** * @brief restoreFaveHashLinksRelease236 * Starting with release 240 of gmic, filter name capitalization has been normalized. * For example : "Add grain" became "Add Grain" * As a consequence, links between faves and filters based on hashes (computed in part * from the name) were broken. * This method tries to restore the links in the case when 4 faves or more are broken. */ void restoreFaveHashLinksAfterCaseChange(); void importGmicGTKFaves(); void saveFaves(); void addSelectedFilterAsNewFave(const QList & defaultValues, const QList & visibilityStates, InputOutputState inOutState); void applySearchCriterion(const QString & text); void selectFilterFromHash(QString hash, bool notify); void selectFilterFromAbsolutePathOrPlainName(const QString & path); void selectFilterFromAbsolutePath(QString path); void selectFilterFromPlainName(const QString & name); void selectFilterFromCommand(const QString & command); void setVisibleTagSelector(VisibleTagSelector * selector); const Filter & currentFilter() const; void loadSettings(const QSettings & settings); void saveSettings(QSettings & settings); void setInvalidFilter(); bool isInvalidFilter() const; void adjustViewSize(); void expandFaveFolder(); void expandPreviousSessionExpandedFolders(); void expandAll(); void collapseAll(); const QString & errorMessage() const; /** * @brief findFilterFromPlainPathInStdlib * Caution: this function parses the stdlib each time it is called */ static Filter findFilterFromAbsolutePathOrNameInStdlib(const QString & path); static Filter findFilterFromCommandInStdlib(const QString & command); signals: void filterSelectionChanged(); void faveAdditionRequested(QString); void faveNameChanged(QString); public slots: void setVisibleTagColors(unsigned int color); void removeSelectedFave(); void editSelectedFaveName(); void onFaveRenamed(const QString & hash, const QString & name); void toggleSelectionMode(bool on); private slots: void onFilterChanged(const QString & hash); void removeFave(const QString & hash); void onTagToggled(int color); private: void setCurrentFilter(const QString & hash); bool filterExistsAsFave(const QString filterHash); FiltersModel _filtersModel; FavesModel _favesModel; FiltersView * _filtersView; SearchFieldWidget * _searchField; VisibleTagSelector * _visibleTagSelector; Filter _currentFilter; QString _errorMessage; }; } // namespace GmicQt #endif // GMIC_QT_FILTERSPRESENTER_H ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeAbstractItem.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeAbstractItem.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterTreeAbstractItem.h" #include "FilterTextTranslator.h" #include "Globals.h" #include "HtmlTranslator.h" namespace GmicQt { FilterTreeAbstractItem::FilterTreeAbstractItem(QString text) { _visibilityItem = nullptr; if (text.startsWith(WarningPrefix)) { text.remove(0, 1); _isWarning = true; } else { _isWarning = false; } setText(FilterTextTranslator::translate(text)); _plainText = HtmlTranslator::html2txt(FilterTextTranslator::translate(text), true); } FilterTreeAbstractItem::~FilterTreeAbstractItem() {} void FilterTreeAbstractItem::setVisibilityItem(QStandardItem * item) { _visibilityItem = item; } const QString & FilterTreeAbstractItem::plainText() const { return _plainText; } bool FilterTreeAbstractItem::isWarning() const { return _isWarning; } bool FilterTreeAbstractItem::isVisible() const { if (_visibilityItem) { return _visibilityItem->checkState() == Qt::Checked; } return true; } void FilterTreeAbstractItem::setVisibility(bool flag) { if (_visibilityItem) { _visibilityItem->setCheckState(flag ? Qt::Checked : Qt::Unchecked); } } QStringList FilterTreeAbstractItem::path() const { QStringList result; result.push_back(text()); const FilterTreeAbstractItem * parentFolder = dynamic_cast(parent()); while (parentFolder) { result.push_front(parentFolder->text()); parentFolder = dynamic_cast(parentFolder->parent()); } return result; } QString FilterTreeAbstractItem::removeWarningPrefix(QString folderName) { if (folderName.startsWith(WarningPrefix)) { folderName.remove(0, 1); } return folderName; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeAbstractItem.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeAbstractItem.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERTREEABSTRACTITEM_H #define GMIC_QT_FILTERTREEABSTRACTITEM_H #include #include namespace GmicQt { class FilterTreeAbstractItem : public QStandardItem { public: FilterTreeAbstractItem(QString text); ~FilterTreeAbstractItem(); void setVisibilityItem(QStandardItem * item); const QString & plainText() const; bool isWarning() const; bool isVisible() const; void setVisibility(bool flag); QStringList path() const; static QString removeWarningPrefix(QString folderName); protected: QStandardItem * _visibilityItem; private: QString _plainText; bool _isWarning; }; } // namespace GmicQt #endif // GMIC_QT_FILTERTREEABSTRACTITEM_H ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeFolder.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeFolder.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterTreeFolder.h" #include #include "FilterSelector/FiltersView/FilterTreeItem.h" #include "HtmlTranslator.h" namespace GmicQt { FilterTreeFolder::FilterTreeFolder(const QString & text) : FilterTreeAbstractItem(text) { setEditable(false); _isFaveFolder = false; } void FilterTreeFolder::setFaveFolderFlag(bool flag) { _isFaveFolder = flag; } bool FilterTreeFolder::isFullyUnchecked() { int count = rowCount(); for (int row = 0; row < count; ++row) { auto item = dynamic_cast(child(row)); if (item && item->isVisible()) { return false; } auto folder = dynamic_cast(child(row)); if (folder && !folder->isFullyUnchecked()) { return false; } } return true; } void FilterTreeFolder::applyVisibilityStatusToFolderContents() { if (_visibilityItem) { setItemsVisibility(_visibilityItem->checkState() == Qt::Checked); } } void FilterTreeFolder::setItemsVisibility(bool visible) { int rows = rowCount(); for (int row = 0; row < rows; ++row) { auto item = dynamic_cast(child(row)); if (item) { item->setVisibility(visible); } } } bool FilterTreeFolder::isFaveFolder() const { return _isFaveFolder; } bool FilterTreeFolder::operator<(const QStandardItem & other) const { auto otherFolder = dynamic_cast(&other); auto otherItem = dynamic_cast(&other); Q_ASSERT_X(otherFolder || otherItem, "FilterTreeItem::operator<", "Wrong item types"); bool otherIsWarning = (otherFolder && otherFolder->isWarning()) || (otherItem && otherItem->isWarning()); bool otherIsFaveFolder = otherFolder && otherFolder->isFaveFolder(); // Warnings first if (isWarning() && !otherIsWarning) { return true; } if (!isWarning() && otherIsWarning) { return false; } // Then fave folder if (_isFaveFolder && !otherIsFaveFolder) { return true; } if (!_isFaveFolder && otherIsFaveFolder) { return false; } // Then folders if (!otherFolder) { return true; } // Other cases follow lexicographic order if (otherFolder) { return plainText().localeAwareCompare(otherFolder->plainText()) < 0; } return plainText().localeAwareCompare(otherItem->plainText()) < 0; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeFolder.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeFolder.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERTREEFOLDER_H #define GMIC_QT_FILTERTREEFOLDER_H #include #include #include "FilterSelector/FiltersView/FilterTreeAbstractItem.h" namespace GmicQt { class FilterTreeFolder : public FilterTreeAbstractItem { public: FilterTreeFolder(const QString & text); void setFaveFolderFlag(bool); bool isFullyUnchecked(); bool isFaveFolder() const; bool operator<(const QStandardItem & other) const override; void applyVisibilityStatusToFolderContents(); void setItemsVisibility(bool visible); private: bool _isFaveFolder; }; } // namespace GmicQt #endif // GMIC_QT_FILTERTREEFOLDER_H ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeItem.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeItem.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterTreeItem.h" #include #include "Common.h" #include "FilterSelector/FilterTagMap.h" #include "FilterSelector/FiltersView/FilterTreeFolder.h" #include "HtmlTranslator.h" namespace GmicQt { FilterTreeItem::FilterTreeItem(const QString & text) : FilterTreeAbstractItem(text) { _isWarning = false; _isFave = false; setEditable(false); } void FilterTreeItem::setHash(const QString & hash) { _hash = hash; } void FilterTreeItem::setWarningFlag(bool flag) { _isWarning = flag; } void FilterTreeItem::setFaveFlag(bool flag) { _isFave = flag; setEditable(flag); } bool FilterTreeItem::isWarning() const { return _isWarning; } bool FilterTreeItem::isFave() const { return _isFave; } QString FilterTreeItem::hash() const { return _hash; } bool FilterTreeItem::operator<(const QStandardItem & other) const { auto otherFolder = dynamic_cast(&other); auto otherItem = dynamic_cast(&other); Q_ASSERT_X(otherFolder || otherItem, "FilterTreeItem::operator<", "Wrong item types"); bool otherIsWarning = (otherFolder && otherFolder->isWarning()) || (otherItem && otherItem->isWarning()); bool otherIsFaveFolder = otherFolder && otherFolder->isFaveFolder(); // Warnings first if (_isWarning && !otherIsWarning) { return true; } if (!_isWarning && otherIsWarning) { return false; } // Then fave folder if (otherIsFaveFolder) { return false; } // Then folders if (otherFolder) { return false; } // Other cases follow lexicographic order if (otherFolder) { return plainText().localeAwareCompare(otherFolder->plainText()) < 0; } return plainText().localeAwareCompare(otherItem->plainText()) < 0; } void FilterTreeItem::setTags(const TagColorSet & colors) { FiltersTagMap::setFilterTags(_hash, colors); } void FilterTreeItem::addTag(TagColor tagColor) { FiltersTagMap::setFilterTag(_hash, tagColor); } void FilterTreeItem::removeTag(TagColor tagColor) { FiltersTagMap::clearFilterTag(_hash, tagColor); } void FilterTreeItem::toggleTag(TagColor tagColor) { FiltersTagMap::toggleFilterTag(_hash, tagColor); } const TagColorSet FilterTreeItem::tags() const { return FiltersTagMap::filterTags(_hash); } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeItem.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeItem.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERTREEITEM_H #define GMIC_QT_FILTERTREEITEM_H #include #include #include #include "FilterSelector/FiltersView/FilterTreeAbstractItem.h" #include "Tags.h" namespace GmicQt { class FilterTreeItem : public FilterTreeAbstractItem { public: FilterTreeItem(const QString & text); void setHash(const QString & hash); void setWarningFlag(bool flag); void setFaveFlag(bool flag); bool isWarning() const; bool isFave() const; QString hash() const; bool operator<(const QStandardItem & other) const override; void setTags(const TagColorSet & colors); void addTag(TagColor tagColor); void removeTag(TagColor tagColor); void toggleTag(TagColor tagColor); const TagColorSet tags() const; private: QString _hash; bool _isFave; bool _isWarning; }; } // namespace GmicQt #endif // GMIC_QT_FILTERTREEITEM_H ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeItemDelegate.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeItemDelegate.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterTreeItemDelegate.h" #include #include #include #include #include #include "FilterSelector/FiltersView/FilterTreeAbstractItem.h" #include "FilterSelector/FiltersView/FilterTreeItem.h" #include "Settings.h" #include "Tags.h" namespace GmicQt { FilterTreeItemDelegate::FilterTreeItemDelegate(QObject * parent) : QStyledItemDelegate(parent) {} void FilterTreeItemDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const { QStyleOptionViewItem options = option; initStyleOption(&options, index); painter->save(); auto model = dynamic_cast(index.model()); Q_ASSERT_X(model, "FiltersTreeItemDelegate::paint()", "No model"); const QStandardItem * item = model->itemFromIndex(index); Q_ASSERT_X(item, "FiltersTreeItemDelegate::paint()", "No item"); auto filter = dynamic_cast(item); const int height = int(options.rect.height() * 0.4); QString tagString; if (filter) { TagColorSet tags = filter->tags(); if (!tags.isEmpty()) { tagString = "  "; for (TagColor color : tags) { tagString += QString(" ") + TagAssets::markerHtml(color, height); } } } QTextDocument doc; if (!item->isCheckable() && filter && !filter->isVisible()) { QColor textColor; textColor = Settings::UnselectedFilterTextColor; doc.setHtml(QString("%2 %3").arg(textColor.name()).arg(options.text).arg(tagString)); } else { if (filter) { doc.setHtml(options.text + tagString); } else { doc.setHtml(options.text); } } options.text = ""; options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter); painter->translate(options.rect.left(), options.rect.top()); QRect clip(0, 0, options.rect.width(), options.rect.height()); doc.drawContents(painter, clip); painter->restore(); } QSize FilterTreeItemDelegate::sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const { QStyleOptionViewItem options = option; initStyleOption(&options, index); QTextDocument doc; doc.setHtml(options.text); doc.setTextWidth(options.rect.width()); return {static_cast(doc.idealWidth()), static_cast(doc.size().height())}; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersView/FilterTreeItemDelegate.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterTreeItemDelegate.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERTREEITEMDELEGATE_H #define GMIC_QT_FILTERTREEITEMDELEGATE_H #include namespace GmicQt { class FilterTreeItemDelegate : public QStyledItemDelegate { public: FilterTreeItemDelegate(QObject * parent); protected: void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const; QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const; }; } // namespace GmicQt #endif // GMIC_QT_FILTERTREEITEMDELEGATE_H ================================================ FILE: src/FilterSelector/FiltersView/FiltersView.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersView.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSelector/FiltersView/FiltersView.h" #include #include #include #include #include #include #include #include #include "Common.h" #include "FilterSelector/FilterTagMap.h" #include "FilterSelector/FiltersView/FilterTreeFolder.h" #include "FilterSelector/FiltersView/FilterTreeItem.h" #include "FilterSelector/FiltersView/FilterTreeItemDelegate.h" #include "FilterSelector/FiltersVisibilityMap.h" #include "FilterTextTranslator.h" #include "Globals.h" #include "ui_filtersview.h" namespace GmicQt { const QString FiltersView::FilterTreePathSeparator("\t"); FiltersView::FiltersView(QWidget * parent) : QWidget(parent), ui(new Ui::FiltersView), _isInSelectionMode(false) { ui->setupUi(this); ui->treeView->setModel(&_emptyModel); _faveFolder = nullptr; _cachedFolder = _model.invisibleRootItem(); auto delegate = new FilterTreeItemDelegate(ui->treeView); ui->treeView->setItemDelegate(delegate); ui->treeView->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents); ui->treeView->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); connect(delegate, &FilterTreeItemDelegate::commitData, this, &FiltersView::onRenameFaveFinished); connect(ui->treeView, &TreeView::returnKeyPressed, this, &FiltersView::onReturnKeyPressedInFiltersTree); connect(ui->treeView, &TreeView::clicked, this, &FiltersView::onItemClicked); connect(&_model, &QStandardItemModel::itemChanged, this, &FiltersView::onItemChanged); ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->treeView, &TreeView::customContextMenuRequested, this, &FiltersView::onCustomContextMenu); _faveContextMenu = nullptr; _filterContextMenu = nullptr; ui->treeView->installEventFilter(this); } FiltersView::~FiltersView() { delete ui; } void FiltersView::enableModel() { if (_isInSelectionMode) { uncheckFullyUncheckedFolders(); _model.setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("Visible"))); _model.setColumnCount(2); } ui->treeView->setModel(&_model); if (_isInSelectionMode) { QStandardItem * headerItem = _model.horizontalHeaderItem(1); QString title = QString("_%1_").arg(headerItem->text()); QFont font; QFontMetrics fm(font); #if QT_VERSION_GTE(5, 11, 0) int w = fm.horizontalAdvance(title); #else int w = fm.width(title); #endif ui->treeView->setColumnWidth(0, ui->treeView->width() - 2 * w); ui->treeView->setColumnWidth(1, w); } } void FiltersView::disableModel() { ui->treeView->setModel(&_emptyModel); } void FiltersView::createFolder(const QList & path) { createFolder(_model.invisibleRootItem(), path); } void FiltersView::addFilter(const QString & text, const QString & hash, const QList & path, bool warning) { const bool filterIsVisible = FiltersVisibilityMap::filterIsVisible(hash); TagColorSet tagColors = FiltersTagMap::filterTags(hash); if (!_isInSelectionMode && !filterIsVisible) { return; } if (!_visibleTagColors.isEmpty() && (tagColors & _visibleTagColors).isEmpty()) { return; } QStandardItem * folder = getFolderFromPath(path); if (!folder) { folder = createFolder(_model.invisibleRootItem(), path); } auto item = new FilterTreeItem(text); item->setHash(hash); item->setWarningFlag(warning); item->setTags(tagColors); if (_isInSelectionMode) { addStandardItemWithCheckbox(folder, item); item->setVisibility(filterIsVisible); } else { folder->appendRow(item); } } void FiltersView::addFave(const QString & text, const QString & hash) { const bool faveIsVisible = FiltersVisibilityMap::filterIsVisible(hash); TagColorSet tagColors = FiltersTagMap::filterTags(hash); if (!_isInSelectionMode && !faveIsVisible) { return; } if (!_visibleTagColors.isEmpty() && (tagColors & _visibleTagColors).isEmpty()) { return; } if (!_faveFolder) { createFaveFolder(); } auto item = new FilterTreeItem(text); item->setHash(hash); item->setWarningFlag(false); item->setFaveFlag(true); item->setTags(tagColors); if (_isInSelectionMode) { addStandardItemWithCheckbox(_faveFolder, item); item->setVisibility(faveIsVisible); } else { _faveFolder->appendRow(item); } } void FiltersView::selectFave(const QString & hash) { // Select the fave if the model is enabled if (ui->treeView->model() == &_model) { FilterTreeItem * fave = findFave(hash); if (fave) { ui->treeView->setCurrentIndex(fave->index()); ui->treeView->scrollTo(fave->index(), QAbstractItemView::PositionAtCenter); updateIndexBeforeClick(); } } } void FiltersView::selectActualFilter(const QString & hash, const QList & path) { QStandardItem * folder = getFolderFromPath(path); if (folder) { for (int row = 0; row < folder->rowCount(); ++row) { auto filter = dynamic_cast(folder->child(row)); if (filter && (filter->hash() == hash)) { ui->treeView->setCurrentIndex(filter->index()); ui->treeView->scrollTo(filter->index(), QAbstractItemView::PositionAtCenter); updateIndexBeforeClick(); return; } } } } void FiltersView::removeFave(const QString & hash) { FilterTreeItem * fave = findFave(hash); if (fave) { _model.removeRow(fave->row(), fave->index().parent()); if (_faveFolder->rowCount() == 0) { removeFaveFolder(); } } } void FiltersView::clear() { removeFaveFolder(); _model.invisibleRootItem()->removeRows(0, _model.invisibleRootItem()->rowCount()); _model.setColumnCount(1); _cachedFolder = _model.invisibleRootItem(); _cachedFolderPath.clear(); _indexBeforeClick = QModelIndex{}; } void FiltersView::sort() { _model.invisibleRootItem()->sortChildren(0); } void FiltersView::sortFaves() { if (_faveFolder) { _faveFolder->sortChildren(0); } } void FiltersView::updateFaveItem(const QString & currentHash, const QString & newHash, const QString & newName) { FilterTreeItem * item = findFave(currentHash); if (!item) { return; } item->setText(newName); item->setHash(newHash); } void FiltersView::setHeader(const QString & header) { _model.setHorizontalHeaderItem(0, new QStandardItem(header)); } FilterTreeItem * FiltersView::selectedItem() const { QModelIndex index = ui->treeView->currentIndex(); return filterTreeItemFromIndex(index); } FilterTreeItem * FiltersView::filterTreeItemFromIndex(QModelIndex index) const { // Get filter item even if it is the checkbox which is actually selected if (!index.isValid()) { return nullptr; } QStandardItem * item = _model.itemFromIndex(index); if (item) { int row = index.row(); QStandardItem * parentFolder = item->parent(); // parent is 0 for top level items if (!parentFolder) { parentFolder = _model.invisibleRootItem(); } QStandardItem * leftItem = parentFolder->child(row, 0); if (leftItem) { auto item = dynamic_cast(leftItem); if (item) { return item; } } } return nullptr; } QString FiltersView::selectedFilterHash() const { FilterTreeItem * item = selectedItem(); return item ? item->hash() : QString(); } bool FiltersView::aFaveIsSelected() const { FilterTreeItem * item = selectedItem(); return item && item->isFave(); } void FiltersView::preserveExpandedFolders() { if (ui->treeView->model() == &_emptyModel) { return; } _expandedFolderPaths.clear(); preserveExpandedFolders(_model.invisibleRootItem(), _expandedFolderPaths); } void FiltersView::restoreExpandedFolders() { expandFolders(_expandedFolderPaths); } void FiltersView::loadSettings(const QSettings &) { FiltersVisibilityMap::load(); FiltersTagMap::load(); } void FiltersView::saveSettings(QSettings & settings) { if (_isInSelectionMode) { saveFiltersVisibility(_model.invisibleRootItem()); } saveFiltersTags(_model.invisibleRootItem()); preserveExpandedFolders(); settings.setValue("Config/ExpandedFolders", QStringList(_expandedFolderPaths)); FiltersVisibilityMap::save(); FiltersTagMap::save(); } void FiltersView::enableSelectionMode() { _isInSelectionMode = true; } void FiltersView::disableSelectionMode() { _model.setHorizontalHeaderItem(1, nullptr); _isInSelectionMode = false; saveFiltersVisibility(_model.invisibleRootItem()); } void FiltersView::uncheckFullyUncheckedFolders() { uncheckFullyUncheckedFolders(_model.invisibleRootItem()); } void FiltersView::adjustTreeSize() { ui->treeView->adjustSize(); } void FiltersView::expandFolders(QList & folderPaths) { expandFolders(folderPaths, _model.invisibleRootItem()); } bool FiltersView::eventFilter(QObject * watched, QEvent * event) { if (watched != ui->treeView) { return QObject::eventFilter(watched, event); } if (event->type() == QEvent::KeyPress) { auto keyEvent = dynamic_cast(event); if (keyEvent && (keyEvent->key() == Qt::Key_Delete)) { FilterTreeItem * item = selectedItem(); if (item && item->isFave()) { QMessageBox::StandardButton button; button = QMessageBox::question(this, // tr("Remove fave"), // QString(tr("Do you really want to remove the following fave?\n\n%1\n")).arg(item->text()), // QMessageBox::Yes | QMessageBox::No, // QMessageBox::Yes); if (button == QMessageBox::Yes) { emit faveRemovalRequested(item->hash()); return true; } } } } return QObject::eventFilter(watched, event); } void FiltersView::setVisibleTagColors(const TagColorSet & colors) { _visibleTagColors = colors; } TagColorSet FiltersView::visibleTagColors() const { return _visibleTagColors; } void FiltersView::expandFolders(const QList & folderPaths, QStandardItem * folder) { int rows = folder->rowCount(); for (int row = 0; row < rows; ++row) { auto * subFolder = dynamic_cast(folder->child(row)); if (subFolder) { if (folderPaths.contains(subFolder->path().join(FilterTreePathSeparator))) { ui->treeView->expand(subFolder->index()); } else { ui->treeView->collapse(subFolder->index()); } expandFolders(folderPaths, subFolder); } } } void FiltersView::editSelectedFaveName() { FilterTreeItem * item = selectedItem(); if (item && item->isFave()) { ui->treeView->edit(item->index()); } } void FiltersView::expandAll() { auto index = ui->treeView->currentIndex(); ui->treeView->expandAll(); if (index.isValid()) { ui->treeView->scrollTo(index, QAbstractItemView::PositionAtCenter); } } void FiltersView::collapseAll() { ui->treeView->collapseAll(); } void FiltersView::expandFaveFolder() { if (_faveFolder) { ui->treeView->expand(_faveFolder->index()); } } void FiltersView::onCustomContextMenu(const QPoint & point) { QModelIndex index = ui->treeView->indexAt(point); if (!index.isValid()) { return; } FilterTreeItem * item = filterTreeItemFromIndex(index); if (!item) { return; } onItemClicked(index); if (item->isFave()) { _faveContextMenu->deleteLater(); _faveContextMenu = itemContextMenu(MenuType::Fave, item); _faveContextMenu->exec(ui->treeView->mapToGlobal(point)); } else { _filterContextMenu->deleteLater(); _filterContextMenu = itemContextMenu(MenuType::Filter, item); _filterContextMenu->exec(ui->treeView->mapToGlobal(point)); } } void FiltersView::onRenameFaveFinished(QWidget * editor) { auto lineEdit = dynamic_cast(editor); Q_ASSERT_X(lineEdit, "Rename Fave", "Editor is not a QLineEdit!"); FilterTreeItem * item = selectedItem(); if (!item) { return; } emit faveRenamed(item->hash(), lineEdit->text()); } void FiltersView::onReturnKeyPressedInFiltersTree() { FilterTreeItem * item = selectedItem(); if (item) { emit filterSelected(item->hash()); } else { QModelIndex index = ui->treeView->currentIndex(); QStandardItem * item = _model.itemFromIndex(index); FilterTreeFolder * folder = item ? dynamic_cast(item) : nullptr; if (folder) { if (ui->treeView->isExpanded(index)) { ui->treeView->collapse(index); } else { ui->treeView->expand(index); } } emit filterSelected(QString()); } } void FiltersView::onItemClicked(QModelIndex index) { if (index != _indexBeforeClick) { FilterTreeItem * item = filterTreeItemFromIndex(index); if (item) { emit filterSelected(item->hash()); } else { emit filterSelected(QString()); } } updateIndexBeforeClick(); } void FiltersView::onItemChanged(QStandardItem * item) { if (!item->isCheckable()) { return; } int row = item->index().row(); QStandardItem * parentFolder = item->parent(); if (!parentFolder) { // parent is 0 for top level items parentFolder = _model.invisibleRootItem(); } QStandardItem * leftItem = parentFolder->child(row); if (!leftItem) { return; } auto folder = dynamic_cast(leftItem); if (folder) { folder->applyVisibilityStatusToFolderContents(); } // Force an update of the view by triggering a call of // QStandardItem::emitDataChanged() leftItem->setData(leftItem->data()); } void FiltersView::onContextMenuRemoveFave() { emit faveRemovalRequested(selectedFilterHash()); } void FiltersView::onContextMenuRenameFave() { editSelectedFaveName(); } void FiltersView::onContextMenuAddFave() { emit faveAdditionRequested(selectedFilterHash()); } void FiltersView::uncheckFullyUncheckedFolders(QStandardItem * folder) { int rows = folder->rowCount(); for (int row = 0; row < rows; ++row) { auto subFolder = dynamic_cast(folder->child(row)); if (subFolder) { uncheckFullyUncheckedFolders(subFolder); if (subFolder->isFullyUnchecked()) { subFolder->setVisibility(false); } } } } void FiltersView::preserveExpandedFolders(QStandardItem * folder, QList & list) { int rows = folder->rowCount(); for (int row = 0; row < rows; ++row) { auto subFolder = dynamic_cast(folder->child(row)); if (subFolder) { if (ui->treeView->isExpanded(subFolder->index())) { list.push_back(subFolder->path().join(FilterTreePathSeparator)); } preserveExpandedFolders(subFolder, list); } } } void FiltersView::createFaveFolder() { if (_faveFolder) { return; } _faveFolder = new FilterTreeFolder(tr(FAVE_FOLDER_TEXT)); _faveFolder->setFaveFolderFlag(true); _model.invisibleRootItem()->appendRow(_faveFolder); _model.invisibleRootItem()->sortChildren(0); } void FiltersView::removeFaveFolder() { if (!_faveFolder) { return; } _model.invisibleRootItem()->removeRow(_faveFolder->row()); _faveFolder = nullptr; } void FiltersView::addStandardItemWithCheckbox(QStandardItem * folder, FilterTreeAbstractItem * item) { QList items; items.push_back(item); auto checkBox = new QStandardItem; checkBox->setCheckable(true); checkBox->setEditable(false); item->setVisibilityItem(checkBox); items.push_back(checkBox); folder->appendRow(items); } QStandardItem * FiltersView::getFolderFromPath(const QList & path) { if (path == _cachedFolderPath) { return _cachedFolder; } _cachedFolder = getFolderFromPath(_model.invisibleRootItem(), path); _cachedFolderPath = path; return _cachedFolder; } QStandardItem * FiltersView::createFolder(QStandardItem * parent, QList path) { Q_ASSERT_X(parent, "FiltersView", "Create folder path in null parent"); if (path.isEmpty()) { return parent; } // Look for already existing base folder in parent QString translatedFirstFolderText = FilterTreeAbstractItem::removeWarningPrefix(FilterTextTranslator::translate(path.front())); for (int row = 0; row < parent->rowCount(); ++row) { auto folder = dynamic_cast(parent->child(row)); if (folder && (folder->text() == translatedFirstFolderText)) { path.pop_front(); return createFolder(folder, path); } } // Folder does not exist, we create it auto folder = new FilterTreeFolder(path.front()); path.pop_front(); if (_isInSelectionMode) { addStandardItemWithCheckbox(parent, folder); folder->setVisibility(true); } else { parent->appendRow(folder); } return createFolder(folder, path); } QStandardItem * FiltersView::getFolderFromPath(QStandardItem * parent, QList path) { Q_ASSERT_X(parent, "FiltersView", "Get folder path from null parent"); if (path.isEmpty()) { return parent; } QString translatedFirstFolderText = FilterTreeAbstractItem::removeWarningPrefix(FilterTextTranslator::translate(path.front())); for (int row = 0; row < parent->rowCount(); ++row) { auto folder = dynamic_cast(parent->child(row)); if (folder && (folder->text() == translatedFirstFolderText)) { path.pop_front(); return getFolderFromPath(folder, path); } } return nullptr; } void FiltersView::saveFiltersVisibility(QStandardItem * item) { if (!item) { return; } auto filterItem = dynamic_cast(item); if (filterItem) { FiltersVisibilityMap::setVisibility(filterItem->hash(), filterItem->isVisible()); return; } int rows = item->rowCount(); for (int row = 0; row < rows; ++row) { saveFiltersVisibility(item->child(row)); } } void FiltersView::saveFiltersTags(QStandardItem * item) { if (!item) { return; } auto filterItem = dynamic_cast(item); if (filterItem) { FiltersTagMap::setFilterTags(filterItem->hash(), filterItem->tags()); return; } int rows = item->rowCount(); for (int row = 0; row < rows; ++row) { saveFiltersTags(item->child(row)); } } QMenu * FiltersView::itemContextMenu(MenuType type, FilterTreeItem * item) { QMenu * menu = new QMenu(this); QAction * action; switch (type) { case MenuType::Fave: action = menu->addAction(tr("Rename Fave")); connect(action, &QAction::triggered, this, &FiltersView::onContextMenuRenameFave); action = menu->addAction(tr("Remove Fave")); connect(action, &QAction::triggered, this, &FiltersView::onContextMenuRemoveFave); action = menu->addAction(tr("Clone Fave")); connect(action, &QAction::triggered, this, &FiltersView::onContextMenuAddFave); break; case MenuType::Filter: action = menu->addAction(tr("Add Fave")); connect(action, &QAction::triggered, this, &FiltersView::onContextMenuAddFave); break; } TagColorSet tags = item->tags(); menu->addSeparator(); for (TagColor color : TagColorSet::ActualColors) { QAction * action = TagAssets::action(menu, // color, // tags.contains(color) ? TagAssets::IconMark::Check : TagAssets::IconMark::None); connect(action, &QAction::triggered, [this, item, color]() { // toggleItemTag(item, color); emit tagToggled(int(color)); }); menu->addAction(action); } menu->addSeparator(); int tagCount[int(TagColor::Count)]; TagColorSet existingColors = FiltersTagMap::usedColors(tagCount); QMenu * removeMenu = menu->addMenu(tr("Remove All")); if (existingColors.isEmpty()) { removeMenu->setEnabled(false); } else { for (TagColor color : existingColors) { int iColor = int(color); removeMenu->addAction(action = TagAssets::action(removeMenu, color, TagAssets::IconMark::None)); action->setText(QString(tr("%1 (%2 %3)")).arg(TagAssets::colorName(color)).arg(tagCount[iColor]).arg((tagCount[iColor] != 1) ? tr("Filters") : tr("Filter"))); connect(action, &QAction::triggered, [this, color, iColor]() { FiltersTagMap::removeAllTags(color); emit tagToggled(iColor); }); } } return menu; } void FiltersView::toggleItemTag(FilterTreeItem * item, TagColor color) { item->toggleTag(color); if (!_visibleTagColors.contains(color)) { return; } QStandardItem * folder = item->parent(); folder->removeRow(item->row()); while (folder && (folder != _model.invisibleRootItem()) && (folder->rowCount() == 0)) { QStandardItem * folderParent = folder->parent(); if (!folderParent) { folderParent = _model.invisibleRootItem(); } const int row = folder->row(); folderParent->removeRow(row); folder = folderParent; } } void FiltersView::updateIndexBeforeClick() { _indexBeforeClick = ui->treeView->currentIndex(); } FilterTreeItem * FiltersView::findFave(const QString & hash) { const int count = _faveFolder ? _faveFolder->rowCount() : 0; for (int faveIndex = 0; faveIndex < count; ++faveIndex) { auto item = dynamic_cast(_faveFolder->child(faveIndex)); if (item && (item->hash() == hash)) { return item; } } return nullptr; } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersView/FiltersView.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersView.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSVIEW_H #define GMIC_QT_FILTERSVIEW_H #include #include #include #include #include #include #include #include "Tags.h" class QSettings; class QEvent; namespace Ui { class FiltersView; } namespace GmicQt { class FilterTreeFolder; class FilterTreeItem; class FilterTreeAbstractItem; class FiltersView : public QWidget { Q_OBJECT public: FiltersView(QWidget * parent); ~FiltersView(); void enableModel(); void disableModel(); void createFolder(const QList & path); void addFilter(const QString & text, const QString & hash, const QList & path, bool warning); void addFave(const QString & text, const QString & hash); void selectFave(const QString & hash); void selectActualFilter(const QString & hash, const QList & path); void removeFave(const QString & hash); void clear(); void sort(); void sortFaves(); void updateFaveItem(const QString & currentHash, const QString & newHash, const QString & newName); void setHeader(const QString & header); FilterTreeItem * selectedItem() const; QString selectedFilterHash() const; bool aFaveIsSelected() const; void preserveExpandedFolders(); void restoreExpandedFolders(); void loadSettings(const QSettings & settings); void saveSettings(QSettings & settings); void enableSelectionMode(); void disableSelectionMode(); void uncheckFullyUncheckedFolders(); void adjustTreeSize(); void expandFolders(QList & folderPaths); bool eventFilter(QObject * watched, QEvent * event) override; void setVisibleTagColors(const TagColorSet & colors); TagColorSet visibleTagColors() const; signals: void filterSelected(QString hash); void faveRenamed(QString hash, QString newName); void faveRemovalRequested(QString hash); void faveAdditionRequested(QString hash); void tagToggled(int iColor); public slots: void editSelectedFaveName(); void expandAll(); void collapseAll(); void expandFaveFolder(); void onCustomContextMenu(const QPoint & point); private slots: void onRenameFaveFinished(QWidget * editor); void onReturnKeyPressedInFiltersTree(); void onItemClicked(QModelIndex index); void onItemChanged(QStandardItem * item); void onContextMenuRemoveFave(); void onContextMenuRenameFave(); void onContextMenuAddFave(); private: FilterTreeItem * filterTreeItemFromIndex(QModelIndex index) const; void expandFolders(const QList & folderPaths, QStandardItem * folder); void uncheckFullyUncheckedFolders(QStandardItem * folder); void preserveExpandedFolders(QStandardItem * folder, QList & list); void createFaveFolder(); void removeFaveFolder(); void addStandardItemWithCheckbox(QStandardItem * folder, FilterTreeAbstractItem * item); QStandardItem * getFolderFromPath(const QList & path); QStandardItem * createFolder(QStandardItem * parent, QList path); FilterTreeItem * findFave(const QString & hash); static QStandardItem * getFolderFromPath(QStandardItem * parent, QList path); static void saveFiltersVisibility(QStandardItem * item); static void saveFiltersTags(QStandardItem * item); enum class MenuType { Fave, Filter }; QMenu * itemContextMenu(MenuType type, FilterTreeItem * item); void toggleItemTag(FilterTreeItem * item, TagColor color); Ui::FiltersView * ui; QStandardItemModel _model; QStandardItemModel _emptyModel; FilterTreeFolder * _faveFolder; QList _cachedFolderPath; QStandardItem * _cachedFolder; QList _expandedFolderPaths; static const QString FilterTreePathSeparator; bool _isInSelectionMode; QMenu * _faveContextMenu; QMenu * _filterContextMenu; TagColorSet _visibleTagColors; QModelIndex _indexBeforeClick; void updateIndexBeforeClick(); }; } // namespace GmicQt #endif // GMIC_QT_FILTERSVIEW_H ================================================ FILE: src/FilterSelector/FiltersView/TreeView.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file TreeView.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "TreeView.h" #include namespace GmicQt { TreeView::TreeView(QWidget * parent) : QTreeView(parent) {} void TreeView::keyPressEvent(QKeyEvent * event) { if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) { emit returnKeyPressed(); } QTreeView::keyPressEvent(event); } TreeView::~TreeView() {} } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersView/TreeView.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file TreeView.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_TREEVIEW_H #define GMIC_QT_TREEVIEW_H #include #include #include #include "Common.h" namespace GmicQt { class TreeView : public QTreeView { Q_OBJECT public: TreeView(QWidget * parent); ~TreeView() override; void keyPressEvent(QKeyEvent * event) override; signals: void returnKeyPressed(); private: }; } // namespace GmicQt #endif // GMIC_QT_TREEVIEW_H ================================================ FILE: src/FilterSelector/FiltersVisibilityMap.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersVisibilityMap.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FiltersVisibilityMap.h" #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "GmicQt.h" #include "Logger.h" #include "Utils.h" namespace GmicQt { QSet FiltersVisibilityMap::_hiddenFilters; bool FiltersVisibilityMap::filterIsVisible(const QString & hash) { return !_hiddenFilters.contains(hash); } void FiltersVisibilityMap::setVisibility(const QString & hash, bool visible) { if (visible) { _hiddenFilters.remove(hash); } else { _hiddenFilters.insert(hash); } } void FiltersVisibilityMap::load() { QString path = QString("%1%2").arg(gmicConfigPath(false), FILTERS_VISIBILITY_FILENAME); QFile file(path); if (file.open(QFile::ReadOnly)) { QString line; do { line = file.readLine(); } while (file.bytesAvailable() && line != QString("[Hidden filters list (compressed)]\n")); QByteArray data = qUncompress(file.readAll()); QBuffer buffer(&data); buffer.open(QIODevice::ReadOnly); bool ok; qint32 count = buffer.readLine().trimmed().toInt(&ok); if (ok) { QString hash; while (count--) { hash = buffer.readLine().trimmed(); _hiddenFilters.insert(hash); } } else { Logger::error("Cannot read visibility file (" + file.fileName() + ")"); } } } void FiltersVisibilityMap::save() { QByteArray data; QBuffer buffer(&data); buffer.open(QIODevice::WriteOnly); qint32 count = _hiddenFilters.size(); buffer.write(QString("%1\n").arg(count).toLatin1()); for (const QString & str : _hiddenFilters) { buffer.write((str + QChar('\n')).toLatin1()); } QString path = QString("%1%2").arg(gmicConfigPath(true), FILTERS_VISIBILITY_FILENAME); QByteArray array = QString("Version=%1\n[Hidden filters list (compressed)]\n").arg(gmicVersionString()).toLocal8Bit(); array += qCompress(data); if (!safelyWrite(array, path)) { Logger::error("Saving filters visibility in " + path); } } } // namespace GmicQt ================================================ FILE: src/FilterSelector/FiltersVisibilityMap.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FiltersVisibilityMap.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSVISIBILITYMAP_H #define GMIC_QT_FILTERSVISIBILITYMAP_H #include namespace GmicQt { class FiltersVisibilityMap { public: static bool filterIsVisible(const QString & hash); static void setVisibility(const QString & hash, bool visible); static void load(); static void save(); protected: private: static QSet _hiddenFilters; FiltersVisibilityMap() = delete; }; } // namespace GmicQt #endif // GMIC_QT_FILTERSVISIBILITYMAP_H ================================================ FILE: src/FilterSyncRunner.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterSyncRunner.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterSyncRunner.h" #include #include #include #include "FilterThread.h" #include "GmicStdlib.h" #include "Logger.h" #include "Misc.h" #include "PersistentMemory.h" #include "Settings.h" #include "gmic.h" namespace GmicQt { FilterSyncRunner::FilterSyncRunner(QObject * parent, const QString & command, const QString & arguments, const QString & environment) : QObject(parent), _command(command), _arguments(arguments), _environment(environment), // _images(new gmic_library::gmic_list), // _imageNames(new gmic_library::gmic_list), // _persistentMemoryOutput(new gmic_library::gmic_image) { #ifdef _IS_MACOS_ static bool stackSize8MB = false; if (!stackSize8MB) { QThread::currentThread()->setStackSize(8 * 1024 * 1024); stackSize8MB = true; } #endif _gmicAbort = false; _failed = false; _gmicProgress = 0.0f; } FilterSyncRunner::~FilterSyncRunner() { delete _images; delete _imageNames; delete _persistentMemoryOutput; } void FilterSyncRunner::setArguments(const QString & str) { _arguments = str; } void FilterSyncRunner::setImageNames(const gmic_library::gmic_list & imageNames) { *_imageNames = imageNames; } void FilterSyncRunner::swapImages(gmic_library::gmic_list & images) { _images->swap(images); } void FilterSyncRunner::setInputImages(const gmic_library::gmic_list & list) { *_images = list; } const gmic_library::gmic_list & FilterSyncRunner::images() const { return *_images; } const gmic_library::gmic_list & FilterSyncRunner::imageNames() const { return *_imageNames; } gmic_library::gmic_image & FilterSyncRunner::persistentMemoryOutput() { return *_persistentMemoryOutput; } QStringList FilterSyncRunner::gmicStatus() const { return FilterThread::status2StringList(_gmicStatus); } QList FilterSyncRunner::parametersVisibilityStates() const { return FilterThread::status2Visibilities(_gmicStatus); } QString FilterSyncRunner::errorMessage() const { return _errorMessage; } bool FilterSyncRunner::failed() const { return _failed; } bool FilterSyncRunner::aborted() const { return _gmicAbort; } float FilterSyncRunner::progress() const { return _gmicProgress; } QString FilterSyncRunner::fullCommand() const { QString result = _command; appendWithSpace(result, _arguments); return result; } void FilterSyncRunner::setLogSuffix(const QString & text) { _logSuffix = text; } void FilterSyncRunner::abortGmic() { _gmicAbort = true; } void FilterSyncRunner::run() { _errorMessage.clear(); _failed = false; QString fullCommandLine; try { fullCommandLine = commandFromOutputMessageMode(Settings::outputMessageMode()); appendWithSpace(fullCommandLine, _command); appendWithSpace(fullCommandLine, _arguments); _gmicAbort = false; _gmicProgress = -1; Logger::log(fullCommandLine, _logSuffix, true); gmic gmicInstance(_environment.isEmpty() ? nullptr : QString("%1").arg(_environment).toLocal8Bit().constData(), GmicStdLib::Array.constData(), true, &_gmicProgress, &_gmicAbort, 0.0f); if (PersistentMemory::image()) { if (*PersistentMemory::image() == gmic_store) { gmicInstance.set_variable("_persistent", PersistentMemory::image()); } else { gmicInstance.set_variable("_persistent", '=', PersistentMemory::image()); } } gmicInstance.set_variable("_host", '=', GmicQtHost::ApplicationShortname); gmicInstance.set_variable("_tk", '=', "qt"); gmicInstance.run(fullCommandLine.toLocal8Bit().constData(), *_images, *_imageNames); _gmicStatus = QString::fromLocal8Bit(gmicInstance.status); gmicInstance.get_variable("_persistent").move_to(*_persistentMemoryOutput); } catch (gmic_exception & e) { _images->assign(); _imageNames->assign(); const char * message = e.what(); _errorMessage = message; Logger::error(QString("When running command '%1', this error occurred:\n%2").arg(fullCommandLine).arg(message), true); _failed = true; } } } // namespace GmicQt ================================================ FILE: src/FilterSyncRunner.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterSyncRunner.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_FILTERSYNCRUNNER_H #define GMIC_QT_FILTERSYNCRUNNER_H #include #include #include #include "Common.h" #include "GmicQt.h" #include "Host/GmicQtHost.h" class QObject; namespace gmic_library { template struct gmic_list; } namespace GmicQt { class FilterSyncRunner : public QObject { Q_OBJECT public: FilterSyncRunner(QObject * parent, const QString & command, const QString & arguments, const QString & environment); virtual ~FilterSyncRunner(); void setArguments(const QString &); void setInputImages(const gmic_library::gmic_list & list); void setImageNames(const gmic_library::gmic_list & imageNames); void swapImages(gmic_library::gmic_list & images); const gmic_library::gmic_list & images() const; const gmic_library::gmic_list & imageNames() const; gmic_library::gmic_image & persistentMemoryOutput(); QStringList gmicStatus() const; QList parametersVisibilityStates() const; QString errorMessage() const; bool failed() const; bool aborted() const; float progress() const; QString fullCommand() const; void setLogSuffix(const QString & text); void run(); void abortGmic(); private: QString _command; QString _arguments; QString _environment; gmic_library::gmic_list * _images; gmic_library::gmic_list * _imageNames; gmic_library::gmic_image * _persistentMemoryOutput; bool _gmicAbort; bool _failed; QString _gmicStatus; float _gmicProgress; QString _errorMessage; QString _name; QString _logSuffix; }; } // namespace GmicQt #endif // GMIC_QT_FILTERSYNCRUNNER_H ================================================ FILE: src/FilterTextTranslator.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * @file FilterTextTranslator.cpp * @author Sebastien Fourey * @date Sep 2020 * * @brief Definition of the class FilterTextTranslator * * @copyright */ #include "FilterTextTranslator.h" #include #include "Common.h" namespace GmicQt { QString FilterTextTranslator::translate(const QString & str) { return QCoreApplication::translate("FilterTextTranslator", str.toUtf8().constData()); } QString FilterTextTranslator::translate(const QString & str, const QString & filterName) { QByteArray text = str.toUtf8(); QByteArray comment = filterName.toUtf8(); QString result = QCoreApplication::translate("FilterTextTranslator", text.constData(), comment.constData()); if (result == str) { return QCoreApplication::translate("FilterTextTranslator", text); } return result; } } // namespace GmicQt ================================================ FILE: src/FilterTextTranslator.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * @file FilterTextTranslator.h * @author Sebastien Fourey * @date Sep 2020 * * @brief Declaration of the class FilterTextTranslator * * @copyright */ #ifndef GMIC_QT_FILTERTEXTTRANSLATOR_H #define GMIC_QT_FILTERTEXTTRANSLATOR_H #include #include #include #include #include #include "Common.h" namespace GmicQt { /** * The FilterTextTranslator class. */ class FilterTextTranslator : public QObject { Q_OBJECT public: FilterTextTranslator() = delete; static QString translate(const QString & str); static QString translate(const QString & str, const QString & filterName); protected: private: }; } // namespace GmicQt #endif // GMIC_QT_FILTERTEXTTRANSLATOR_H ================================================ FILE: src/FilterThread.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterThread.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "FilterThread.h" #include #include #include #include "FilterParameters/AbstractParameter.h" #include "GmicStdlib.h" #include "Logger.h" #include "Misc.h" #include "PersistentMemory.h" #include "Settings.h" #include "gmic.h" namespace GmicQt { FilterThread::FilterThread(QObject * parent, const QString & command, const QString & arguments, const QString & environment) : QThread(parent), _command(command), _arguments(arguments), _environment(environment), // _images(new gmic_library::gmic_list), // _imageNames(new gmic_library::gmic_list), // _persistentMemoryOutput(new gmic_library::gmic_image) { _gmicAbort = false; _failed = false; _gmicProgress = 0.0f; #ifdef _IS_MACOS_ setStackSize(8 * 1024 * 1024); #endif } FilterThread::~FilterThread() { delete _images; delete _imageNames; delete _persistentMemoryOutput; } void FilterThread::setImageNames(const gmic_library::gmic_list & imageNames) { *_imageNames = imageNames; } void FilterThread::swapImages(gmic_library::gmic_list & images) { _images->swap(images); } void FilterThread::setInputImages(const gmic_library::gmic_list & list) { *_images = list; } const gmic_library::gmic_list & FilterThread::images() const { return *_images; } const gmic_library::gmic_list & FilterThread::imageNames() const { return *_imageNames; } gmic_library::gmic_image & FilterThread::persistentMemoryOutput() { return *_persistentMemoryOutput; } QStringList FilterThread::status2StringList(QString status) { // Check if status matches something like "{...}{...}_1{...}_0" const QChar front = QChar::fromLatin1(gmic_lbrace); QRegularExpression back(QString("%1(_[012])?$").arg(QChar::fromLatin1(gmic_rbrace))); if (!(status.startsWith(front) && status.contains(back))) { return QStringList(); } status.remove(0, 1); status.remove(back); QRegularExpression separator(QChar::fromLatin1(gmic_rbrace) + QString("(_[012])?") + QChar::fromLatin1(gmic_lbrace)); QStringList list = status.split(separator); QStringList::iterator it = list.begin(); while (it != list.end()) { QByteArray array = it->toLocal8Bit(); gmic::strreplace_fw(array.data()); *it++ = QString::fromLocal8Bit(array); } return list; } QList FilterThread::status2Visibilities(const QString & status) { if (status.isEmpty()) { return QList(); } // Check if status matches something like "{...}{...}_1{...}_0" const QChar front = QChar::fromLatin1(gmic_lbrace); QRegularExpression back(QString("%1(_[012])?$").arg(QChar::fromLatin1(gmic_rbrace))); if (!(status.startsWith(front) && status.contains(back))) { return QList(); } QByteArray ba = status.toLocal8Bit(); const char * pc = ba.constData(); const char * limit = pc + ba.size(); QList result; while (pc < limit) { if (*pc == gmic_rbrace) { if ((pc < limit - 2) && (pc[1] == '_') && (pc[2] >= '0') && (pc[2] <= '2') && (!pc[3] || (pc[3] == gmic_lbrace))) { result.push_back(pc[2] - '0'); // AbstractParameter::VisibilityState pc += 3; } else if (!pc[1] || (pc[1] == gmic_lbrace)) { result.push_back((int)AbstractParameter::VisibilityState::Unspecified); ++pc; } else { return QList(); } } else { ++pc; } } return result; } QStringList FilterThread::gmicStatus() const { return status2StringList(_gmicStatus); } QList FilterThread::parametersVisibilityStates() const { return status2Visibilities(_gmicStatus); } QString FilterThread::errorMessage() const { return _errorMessage; } bool FilterThread::failed() const { return _failed; } bool FilterThread::aborted() const { return _gmicAbort; } int FilterThread::duration() const { return static_cast(_startTime.elapsed()); } float FilterThread::progress() const { return _gmicProgress; } QString FilterThread::fullCommand() const { QString result = _command; appendWithSpace(result, _arguments); return result; } void FilterThread::setLogSuffix(const QString & text) { _logSuffix = text; } void FilterThread::abortGmic() { _gmicAbort = true; } void FilterThread::run() { _startTime.start(); _errorMessage.clear(); _failed = false; QString fullCommandLine; try { fullCommandLine = commandFromOutputMessageMode(Settings::outputMessageMode()); appendWithSpace(fullCommandLine, _command); appendWithSpace(fullCommandLine, _arguments); _gmicAbort = false; _gmicProgress = -1; Logger::log(fullCommandLine, _logSuffix, true); gmic gmicInstance(_environment.isEmpty() ? nullptr : QString("%1").arg(_environment).toLocal8Bit().constData(), GmicStdLib::Array.constData(), true, &_gmicProgress, &_gmicAbort, 0.0f); if (PersistentMemory::image()) { if (*PersistentMemory::image() == gmic_store) { gmicInstance.set_variable("_persistent", PersistentMemory::image()); } else { gmicInstance.set_variable("_persistent", '=', PersistentMemory::image()); } } gmicInstance.set_variable("_host", '=', GmicQtHost::ApplicationShortname); gmicInstance.set_variable("_tk", '=', "qt"); gmicInstance.run(fullCommandLine.toLocal8Bit().constData(), *_images, *_imageNames); _gmicStatus = QString::fromLocal8Bit(gmicInstance.status); gmicInstance.get_variable("_persistent").move_to(*_persistentMemoryOutput); } catch (gmic_exception & e) { _images->assign(); _imageNames->assign(); const char * message = e.what(); _errorMessage = message; Logger::error(QString("When running command '%1', this error occurred:\n%2").arg(fullCommandLine).arg(message), true); _failed = true; } } } // namespace GmicQt ================================================ FILE: src/FilterThread.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file FilterThread.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT__FILTERTHREAD_H #define GMIC_QT__FILTERTHREAD_H #include #include #include #include "Common.h" #include "GmicQt.h" #include "Host/GmicQtHost.h" namespace gmic_library { template struct gmic_list; } namespace GmicQt { class FilterThread : public QThread { Q_OBJECT public: FilterThread(QObject * parent, const QString & command, const QString & arguments, const QString & environment); ~FilterThread() override; void setInputImages(const gmic_library::gmic_list & list); void setImageNames(const gmic_library::gmic_list & imageNames); void swapImages(gmic_library::gmic_list & images); const gmic_library::gmic_list & images() const; const gmic_library::gmic_list & imageNames() const; gmic_library::gmic_image & persistentMemoryOutput(); QStringList gmicStatus() const; QList parametersVisibilityStates() const; QString errorMessage() const; bool failed() const; bool aborted() const; int duration() const; float progress() const; QString fullCommand() const; void setLogSuffix(const QString & text); static QStringList status2StringList(QString); static QList status2Visibilities(const QString &); public slots: void abortGmic(); signals: void done(); protected: void run() override; private: QString _command; const QString _arguments; QString _environment; gmic_library::gmic_list * _images; gmic_library::gmic_list * _imageNames; gmic_library::gmic_image * _persistentMemoryOutput; bool _gmicAbort; bool _failed; QString _gmicStatus; float _gmicProgress; QString _errorMessage; QString _name; QString _logSuffix; QElapsedTimer _startTime; }; } // namespace GmicQt #endif // GMIC_QT__FILTERTHREAD_H ================================================ FILE: src/Globals.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Globals.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Globals.h" namespace GmicQt { const float PreviewFactorAny = -1.0f; const float PreviewFactorFullImage = 1.0f; const float PreviewFactorActualSize = 0.0f; } // namespace GmicQt ================================================ FILE: src/Globals.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Globals.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_GLOBALS_H #define GMIC_QT_GLOBALS_H #define GMIC_QT_ORGANISATION_NAME "GREYC" #define GMIC_QT_ORGANISATION_DOMAIN "greyc.fr" #define GMIC_QT_APPLICATION_NAME "gmic_qt" namespace GmicQt { extern const float PreviewFactorAny; extern const float PreviewFactorFullImage; extern const float PreviewFactorActualSize; const char WarningPrefix = '!'; } // namespace GmicQt #define SLIDER_MIN_WIDTH 60 #define PARAMETERS_CACHE_FILENAME "gmic_qt_params.dat" #define FILTER_GUI_DYNAMISM_CACHE_FILENAME "gmic_qt_dynamism.dat" #define FILTERS_VISIBILITY_FILENAME "gmic_qt_visibility.dat" #define FILTERS_TAGS_FILENAME "gmic_qt_tags.dat" #define FILTERS_CACHE_FILENAME "gmic_qt_filters.dat" #define FAVE_FOLDER_TEXT "Faves" #define FAVES_IMPORT_KEY "Faves/ImportedGTK179" #define DARK_THEME_KEY "Config/DarkTheme" #define REFRESH_USING_INTERNET_KEY "Config/RefreshInternetUpdate" #define INTERNET_UPDATE_PERIODICITY_KEY "Config/UpdatesPeriodicityValue" #define OFFICIAL_FILTER_SOURCE_KEY "Config/OfficialFilterSource" #define ENABLE_FILTER_TRANSLATION "Config/FilterTranslation" #define LANGUAGE_CODE_KEY "Config/LanguageCode" #define HIGHDPI_KEY "Config/HighDPIEnabled" #define PREVIEW_SPLITTER_KEY "Config/PreviewSplitterType" #define INTERNET_NEVER_UPDATE_PERIODICITY std::numeric_limits::max() #define ONE_DAY_HOURS (24) #define ONE_WEEK_HOURS (7 * 24) #define TWO_WEEKS_HOURS (14 * 24) #define ONE_MONTH_HOURS (30 * 24) #define INTERNET_DEFAULT_PERIODICITY ONE_MONTH_HOURS #define PREVIEW_MAX_ZOOM_FACTOR 40.0 #define KEYPOINTS_INTERACTIVE_LOWER_DELAY_MS 150 #define KEYPOINTS_INTERACTIVE_UPPER_DELAY_MS 500 #define KEYPOINTS_INTERACTIVE_MIDDLE_DELAY_MS ((KEYPOINTS_INTERACTIVE_LOWER_DELAY_MS + KEYPOINTS_INTERACTIVE_UPPER_DELAY_MS) / 2) #define KEYPOINTS_INTERACTIVE_AVERAGING_COUNT 6 #endif // GMIC_QT_GLOBALS_H ================================================ FILE: src/GmicProcessor.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicProcessor.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "GmicProcessor.h" #include #include #include #include #include #include #include #include "CroppedActiveLayerProxy.h" #include "CroppedImageListProxy.h" #include "FilterGuiDynamismCache.h" #include "FilterSyncRunner.h" #include "FilterThread.h" #include "Globals.h" #include "Host/GmicQtHost.h" #include "ImageTools.h" #include "LayersExtentProxy.h" #include "Logger.h" #include "Misc.h" #include "OverrideCursor.h" #include "PersistentMemory.h" #include "Settings.h" #include "gmic.h" namespace GmicQt { GmicProcessor::GmicProcessor(QObject * parent) : QObject(parent) { _filterThread = nullptr; _gmicImages = new gmic_library::gmic_list; _previewImage = new gmic_library::gmic_image; _waitingCursorTimer.setSingleShot(true); connect(&_waitingCursorTimer, &QTimer::timeout, this, &GmicProcessor::showWaitingCursor); gmic_library::cimg::srand(); _previewRandomSeed = gmic_library::cimg::_rand(); _lastAppliedCommandInOutState = InputOutputState::Unspecified; _ongoingFilterExecutionTime.start(); _completeFullImageProcessingCount = 0; } void GmicProcessor::init() { abortCurrentFilterThread(); _gmicImages->assign(); } GmicProcessor::~GmicProcessor() { delete _gmicImages; delete _previewImage; if (!_unfinishedAbortedThreads.isEmpty()) { Logger::error(QString("~GmicProcessor(): There are %1 unfinished filter threads.").arg(_unfinishedAbortedThreads.size())); detachAllUnfinishedAbortedThreads(); } } void GmicProcessor::setContext(const GmicProcessor::FilterContext & context) { _filterContext = context; } void GmicProcessor::execute() { gmic_list imageNames; FilterContext::VisibleRect & rect = _filterContext.visibleRect; _gmicImages->assign(); if ((_filterContext.requestType == FilterContext::RequestType::Preview) || // (_filterContext.requestType == FilterContext::RequestType::SynchronousPreview) || // (_filterContext.requestType == FilterContext::RequestType::GUIDynamismRun)) { if (_filterContext.previewFromFullImage) { CroppedImageListProxy::get(*_gmicImages, imageNames, 0.0, 0.0, 1.0, 1.0, _filterContext.inputOutputState.inputMode, 1.0); updateImageNames(imageNames); } else { CroppedImageListProxy::get(*_gmicImages, imageNames, rect.x, rect.y, rect.w, rect.h, _filterContext.inputOutputState.inputMode, _filterContext.zoomFactor); updateImageNames(imageNames); } } else { CroppedImageListProxy::get(*_gmicImages, imageNames, rect.x, rect.y, rect.w, rect.h, _filterContext.inputOutputState.inputMode, 1.0); } _waitingCursorTimer.start(WAITING_CURSOR_DELAY); const InputOutputState & io = _filterContext.inputOutputState; QString env = QString("_input_layers=%1").arg(static_cast(io.inputMode)); env += QString(" _output_mode=%1").arg(static_cast(io.outputMode)); env += QString(" _output_messages=%1").arg(static_cast(Settings::outputMessageMode())); if ((_filterContext.requestType == FilterContext::RequestType::Preview) || // (_filterContext.requestType == FilterContext::RequestType::SynchronousPreview)) { env += QString(" _preview_area_width=%1").arg(_filterContext.previewWindowWidth); env += QString(" _preview_area_height=%1").arg(_filterContext.previewWindowHeight); env += QString(" _preview_timeout=%1").arg(_filterContext.previewTimeout); env += QString(" _preview_enabled=%1").arg(int(_filterContext.previewCheckBox)); env += QString(" _randomized=%1").arg(int(_filterContext.randomized)); } int maxWidth; int maxHeight; int preview_x0; int preview_y0; int preview_x1; int preview_y1; QSize previewSize; LayersExtentProxy::getExtent(_filterContext.inputOutputState.inputMode, maxWidth, maxHeight); if (_filterContext.previewFromFullImage) { preview_x0 = static_cast(rect.x * maxWidth); preview_y0 = static_cast(rect.y * maxHeight); preview_x1 = preview_x0 + std::min(maxWidth, static_cast(1 + std::ceil(maxWidth * rect.w))) - 1; preview_y1 = preview_y0 + std::min(maxHeight, static_cast(1 + std::ceil(maxHeight * rect.h))) - 1; previewSize = QSize(1 + preview_x1 - preview_x0, 1 + preview_y1 - preview_y0); if (_filterContext.zoomFactor < 1.0) { previewSize = QSize(static_cast(std::round(previewSize.width() * _filterContext.zoomFactor)), // static_cast(std::round(previewSize.height() * _filterContext.zoomFactor))); } } else { if (_filterContext.zoomFactor < 1.0) { maxWidth = static_cast(std::round(maxWidth * _filterContext.zoomFactor)); maxHeight = static_cast(std::round(maxHeight * _filterContext.zoomFactor)); } preview_x0 = 0; preview_y0 = 0; preview_x1 = std::min(maxWidth, static_cast(1 + std::ceil(maxWidth * rect.w))) - 1; preview_y1 = std::min(maxHeight, static_cast(1 + std::ceil(maxHeight * rect.h))) - 1; previewSize = QSize(1 + preview_x1 - preview_x0, 1 + preview_y1 - preview_y0); } env += QString(" _preview_x0=%1").arg(preview_x0); env += QString(" _preview_y0=%1").arg(preview_y0); env += QString(" _preview_x1=%1").arg(preview_x1); env += QString(" _preview_y1=%1").arg(preview_y1); env += QString(" _preview_width=%1").arg(previewSize.width()); env += QString(" _preview_height=%1").arg(previewSize.height()); _completedExecutionTime.restart(); if (_filterContext.requestType == FilterContext::RequestType::SynchronousPreview) { FilterSyncRunner runner(this, _filterContext.filterCommand, _filterContext.filterArguments, env); runner.swapImages(*_gmicImages); runner.setImageNames(imageNames); runner.setLogSuffix("preview"); gmic_library::cimg::srand(); _previewRandomSeed = gmic_library::cimg::_rand(); _ongoingFilterExecutionTime.restart(); runner.run(); manageSynchonousRunner(runner); recordPreviewFilterExecutionDurationMS((int)_ongoingFilterExecutionTime.elapsed()); } else if ((_filterContext.requestType == FilterContext::RequestType::Preview) || // (_filterContext.requestType == FilterContext::RequestType::GUIDynamismRun)) { _filterThread = new FilterThread(this, _filterContext.filterCommand, _filterContext.filterArguments, env); _filterThread->swapImages(*_gmicImages); _filterThread->setImageNames(imageNames); _filterThread->setLogSuffix("preview"); if (_filterContext.requestType == FilterContext::RequestType::Preview) { connect(_filterThread, &FilterThread::finished, this, &GmicProcessor::onPreviewThreadFinished, Qt::QueuedConnection); } else { connect(_filterThread, &FilterThread::finished, this, &GmicProcessor::onGUIDynamismThreadFinished, Qt::QueuedConnection); } gmic_library::cimg::srand(); _previewRandomSeed = gmic_library::cimg::_rand(); _ongoingFilterExecutionTime.restart(); _filterThread->start(); } else if (_filterContext.requestType == FilterContext::RequestType::FullImage) { _lastAppliedFilterHash = _filterContext.filterHash; _lastAppliedFilterPath = _filterContext.filterFullPath; _lastAppliedCommand = _filterContext.filterCommand; _lastAppliedCommandArguments = _filterContext.filterArguments; _lastAppliedCommandInOutState = _filterContext.inputOutputState; _filterThread = new FilterThread(this, _filterContext.filterCommand, _filterContext.filterArguments, env); _filterThread->swapImages(*_gmicImages); _filterThread->setImageNames(imageNames); _filterThread->setLogSuffix("apply"); connect(_filterThread, &FilterThread::finished, this, &GmicProcessor::onApplyThreadFinished, Qt::QueuedConnection); gmic_library::cimg::srand(_previewRandomSeed); _filterThread->start(); } } bool GmicProcessor::isProcessingFullImage() const { return _filterThread && (_filterContext.requestType == FilterContext::RequestType::FullImage); } bool GmicProcessor::isProcessing() const { return _filterThread; } bool GmicProcessor::isIdle() const { return !_filterThread; } int GmicProcessor::duration() const { if (_filterThread) { return _filterThread->duration(); } return 0; } float GmicProcessor::progress() const { if (_filterThread) { return _filterThread->progress(); } return 0.0f; } int GmicProcessor::lastPreviewFilterExecutionDurationMS() const { if (_lastFilterPreviewExecutionDurations.empty()) { return 0; } return _lastFilterPreviewExecutionDurations.back(); } void GmicProcessor::resetLastPreviewFilterExecutionDurations() { _lastFilterPreviewExecutionDurations.clear(); } void GmicProcessor::recordPreviewFilterExecutionDurationMS(int duration) { _lastFilterPreviewExecutionDurations.push_back(duration); while (_lastFilterPreviewExecutionDurations.size() >= KEYPOINTS_INTERACTIVE_AVERAGING_COUNT) { _lastFilterPreviewExecutionDurations.pop_front(); } } int GmicProcessor::averagePreviewFilterExecutionDuration() const { if (_lastFilterPreviewExecutionDurations.empty()) { return 0; } int count = 0; double sum = 0; for (int duration : _lastFilterPreviewExecutionDurations) { sum += duration; ++count; } return static_cast(sum / count); } int GmicProcessor::completedFullImageProcessingCount() const { return _completeFullImageProcessingCount; } qint64 GmicProcessor::lastCompletedExecutionTime() const { return _lastCompletedExecutionTime; } void GmicProcessor::cancel() { abortCurrentFilterThread(); } void GmicProcessor::detachAllUnfinishedAbortedThreads() { for (FilterThread * thread : _unfinishedAbortedThreads) { thread->disconnect(this); thread->setParent(nullptr); } _unfinishedAbortedThreads.clear(); } void GmicProcessor::terminateAllThreads() { if (_filterThread) { _filterThread->disconnect(this); _filterThread->terminate(); _filterThread->wait(); delete _filterThread; } while (!_unfinishedAbortedThreads.isEmpty()) { _unfinishedAbortedThreads.front()->disconnect(this); _unfinishedAbortedThreads.front()->terminate(); _unfinishedAbortedThreads.front()->wait(); delete _unfinishedAbortedThreads.front(); _unfinishedAbortedThreads.pop_front(); } _waitingCursorTimer.stop(); OverrideCursor::setNormal(); } bool GmicProcessor::hasUnfinishedAbortedThreads() const { return !_unfinishedAbortedThreads.isEmpty(); } const gmic_library::gmic_image & GmicProcessor::previewImage() const { return *_previewImage; } const QStringList & GmicProcessor::gmicStatus() const { return _gmicStatus; } void GmicProcessor::saveSettings(QSettings & settings) { if (_lastAppliedCommand.isEmpty()) { const QString empty; settings.setValue(QString("LastExecution/host_%1/FilterHash").arg(GmicQtHost::ApplicationShortname), empty); settings.setValue(QString("LastExecution/host_%1/FilterPath").arg(GmicQtHost::ApplicationShortname), empty); settings.setValue(QString("LastExecution/host_%1/Command").arg(GmicQtHost::ApplicationShortname), empty); settings.setValue(QString("LastExecution/host_%1/Arguments").arg(GmicQtHost::ApplicationShortname), empty); settings.setValue(QString("LastExecution/host_%1/GmicStatusString").arg(GmicQtHost::ApplicationShortname), QString()); settings.setValue(QString("LastExecution/host_%1/InputMode").arg(GmicQtHost::ApplicationShortname), 0); settings.setValue(QString("LastExecution/host_%1/OutputMode").arg(GmicQtHost::ApplicationShortname), 0); } else { settings.setValue(QString("LastExecution/host_%1/FilterPath").arg(GmicQtHost::ApplicationShortname), _lastAppliedFilterPath); settings.setValue(QString("LastExecution/host_%1/FilterHash").arg(GmicQtHost::ApplicationShortname), _lastAppliedFilterHash); settings.setValue(QString("LastExecution/host_%1/Command").arg(GmicQtHost::ApplicationShortname), _lastAppliedCommand); settings.setValue(QString("LastExecution/host_%1/Arguments").arg(GmicQtHost::ApplicationShortname), _lastAppliedCommandArguments); QString status = flattenGmicParameterList(_lastAppliedCommandGmicStatus, _gmicStatusQuotedParameters); settings.setValue(QString("LastExecution/host_%1/GmicStatusString").arg(GmicQtHost::ApplicationShortname), status); settings.setValue(QString("LastExecution/host_%1/InputMode").arg(GmicQtHost::ApplicationShortname), (int)_lastAppliedCommandInOutState.inputMode); settings.setValue(QString("LastExecution/host_%1/OutputMode").arg(GmicQtHost::ApplicationShortname), (int)_lastAppliedCommandInOutState.outputMode); } } void GmicProcessor::setGmicStatusQuotedParameters(const QVector & quotedParameters) { _gmicStatusQuotedParameters = quotedParameters; } void GmicProcessor::onGUIDynamismThreadFinished() { Q_ASSERT_X(_filterThread, __PRETTY_FUNCTION__, "No filter thread"); if (_filterThread->isRunning()) { return; } if (_filterThread->failed()) { _gmicStatus.clear(); _parametersVisibilityStates.clear(); _gmicImages->assign(); QString message = _filterThread->errorMessage(); _filterThread->deleteLater(); _filterThread = nullptr; hideWaitingCursor(); Logger::warning(QString("Failed to execute filter: %1").arg(message)); return; } _gmicStatus = _filterThread->gmicStatus(); _parametersVisibilityStates = _filterThread->parametersVisibilityStates(); _gmicImages->assign(); FilterGuiDynamismCache::setValue(_filterContext.filterHash, _gmicStatus.isEmpty() ? FilterGuiDynamism::Static : FilterGuiDynamism::Dynamic); PersistentMemory::move_from(_filterThread->persistentMemoryOutput()); _filterThread->deleteLater(); _filterThread = nullptr; hideWaitingCursor(); emit guiDynamismRunDone(); } void GmicProcessor::onPreviewThreadFinished() { Q_ASSERT_X(_filterThread, __PRETTY_FUNCTION__, "No filter thread"); if (_filterThread->isRunning()) { return; } _lastCompletedExecutionTime = _completedExecutionTime.elapsed(); if (_filterThread->failed()) { _gmicStatus.clear(); _parametersVisibilityStates.clear(); _gmicImages->assign(); QString message = _filterThread->errorMessage(); _filterThread->deleteLater(); _filterThread = nullptr; hideWaitingCursor(); emit previewCommandFailed(message); return; } _gmicStatus = _filterThread->gmicStatus(); _parametersVisibilityStates = _filterThread->parametersVisibilityStates(); _gmicImages->assign(); FilterGuiDynamismCache::setValue(_filterContext.filterHash, _gmicStatus.isEmpty() ? FilterGuiDynamism::Static : FilterGuiDynamism::Dynamic); _filterThread->swapImages(*_gmicImages); PersistentMemory::move_from(_filterThread->persistentMemoryOutput()); unsigned int badSpectrumIndex = 0; bool correctSpectrums = checkImageSpectrumAtMost4(*_gmicImages, badSpectrumIndex); if (correctSpectrums) { for (unsigned int i = 0; i < _gmicImages->size(); ++i) { GmicQtHost::applyColorProfile((*_gmicImages)[i]); } buildPreviewImage(*_gmicImages, *_previewImage); } _filterThread->deleteLater(); _filterThread = nullptr; hideWaitingCursor(); if (correctSpectrums) { emit previewImageAvailable(); recordPreviewFilterExecutionDurationMS((int)_ongoingFilterExecutionTime.elapsed()); } else { QString message(tr("Image #%1 returned by filter has %2 channels (should be at most 4)")); emit previewCommandFailed(message.arg(badSpectrumIndex).arg((*_gmicImages)[badSpectrumIndex].spectrum())); } } void GmicProcessor::onApplyThreadFinished() { Q_ASSERT_X(_filterThread, __PRETTY_FUNCTION__, "No filter thread"); Q_ASSERT_X(!_filterThread->aborted(), __PRETTY_FUNCTION__, "Aborted thread!"); if (_filterThread->isRunning()) { return; } _lastCompletedExecutionTime = _completedExecutionTime.elapsed(); _gmicStatus = _filterThread->gmicStatus(); _parametersVisibilityStates = _filterThread->parametersVisibilityStates(); hideWaitingCursor(); if (_filterThread->failed()) { _lastAppliedFilterPath.clear(); _lastAppliedCommand.clear(); _lastAppliedCommandArguments.clear(); QString message = _filterThread->errorMessage(); _filterThread->deleteLater(); _filterThread = nullptr; emit fullImageProcessingFailed(message); } else { _filterThread->swapImages(*_gmicImages); PersistentMemory::move_from(_filterThread->persistentMemoryOutput()); unsigned int badSpectrumIndex = 0; bool correctSpectrums = checkImageSpectrumAtMost4(*_gmicImages, badSpectrumIndex); if (!correctSpectrums) { _lastAppliedFilterPath.clear(); _lastAppliedCommand.clear(); _lastAppliedCommandArguments.clear(); _filterThread->deleteLater(); _filterThread = nullptr; QString message(tr("Image #%1 returned by filter has %2 channels\n(should be at most 4)")); emit fullImageProcessingFailed(message.arg(badSpectrumIndex).arg((*_gmicImages)[badSpectrumIndex].spectrum())); } else { if (GmicQtHost::ApplicationName.isEmpty()) { emit aboutToSendImagesToHost(); } GmicQtHost::outputImages(*_gmicImages, _filterThread->imageNames(), _filterContext.inputOutputState.outputMode); _completeFullImageProcessingCount += 1; LayersExtentProxy::clear(); CroppedActiveLayerProxy::clear(); CroppedImageListProxy::clear(); _filterThread->deleteLater(); _filterThread = nullptr; _lastAppliedCommandGmicStatus = _gmicStatus; // TODO : save visibility states? emit fullImageProcessingDone(); } } } void GmicProcessor::onAbortedThreadFinished() { auto thread = dynamic_cast(sender()); if (_unfinishedAbortedThreads.contains(thread)) { _unfinishedAbortedThreads.removeOne(thread); thread->deleteLater(); } if (_unfinishedAbortedThreads.isEmpty()) { emit noMoreUnfinishedJobs(); } } void GmicProcessor::showWaitingCursor() { if (_filterThread) { OverrideCursor::set(Qt::WaitCursor); } } void GmicProcessor::hideWaitingCursor() { _waitingCursorTimer.stop(); OverrideCursor::setNormal(); } void GmicProcessor::updateImageNames(gmic_list & imageNames) { const double & xFactor = _filterContext.positionStringCorrection.xFactor; const double & yFactor = _filterContext.positionStringCorrection.yFactor; int maxWidth; int maxHeight; LayersExtentProxy::getExtent(_filterContext.inputOutputState.inputMode, maxWidth, maxHeight); for (size_t i = 0; i < imageNames.size(); ++i) { gmic_image & name = imageNames[i]; QString str((const char *)name); QRegularExpression re(R"_(pos\((\d*)([^0-9]*)(\d*)\))_"); auto match = re.match(str); if (match.hasMatch() && match.captured(1).size() && match.captured(3).size()) { int xPos = match.captured(1).toInt(); int yPos = match.captured(3).toInt(); int newXPos = (int)(xPos * (xFactor / (double)maxWidth)); int newYPos = (int)(yPos * (yFactor / (double)maxHeight)); str.replace(match.captured(0), QString("pos(%1%2%3)").arg(newXPos).arg(match.captured(2)).arg(newYPos)); name.resize(str.size() + 1); std::memcpy(name.data(), str.toLatin1().constData(), name.width()); } } } void GmicProcessor::abortCurrentFilterThread() { if (!_filterThread) { return; } _filterThread->disconnect(this); connect(_filterThread, &FilterThread::finished, this, &GmicProcessor::onAbortedThreadFinished); _unfinishedAbortedThreads.push_back(_filterThread); _filterThread->abortGmic(); _filterThread = nullptr; _waitingCursorTimer.stop(); OverrideCursor::setNormal(); } void GmicProcessor::manageSynchonousRunner(FilterSyncRunner & runner) { _lastCompletedExecutionTime = _completedExecutionTime.elapsed(); if (runner.failed()) { _gmicStatus.clear(); _gmicImages->assign(); QString message = runner.errorMessage(); hideWaitingCursor(); emit previewCommandFailed(message); return; } _gmicStatus = runner.gmicStatus(); _parametersVisibilityStates = runner.parametersVisibilityStates(); _gmicImages->assign(); runner.swapImages(*_gmicImages); PersistentMemory::move_from(runner.persistentMemoryOutput()); for (unsigned int i = 0; i < _gmicImages->size(); ++i) { GmicQtHost::applyColorProfile((*_gmicImages)[i]); } buildPreviewImage(*_gmicImages, *_previewImage); hideWaitingCursor(); emit previewImageAvailable(); } const QList & GmicProcessor::parametersVisibilityStates() const { return _parametersVisibilityStates; } } // namespace GmicQt ================================================ FILE: src/GmicProcessor.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicProcessor.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_GMICPROCESSOR_H #define GMIC_QT_GMICPROCESSOR_H #include #include #include #include #include #include #include #include #include #include #include "GmicQt.h" #include "InputOutputState.h" namespace gmic_library { template struct gmic_list; template struct gmic_image; } // namespace gmic_library namespace GmicQt { class FilterThread; class FilterSyncRunner; class GmicProcessor : public QObject { Q_OBJECT public: struct FilterContext { enum class RequestType { SynchronousPreview, Preview, FullImage, GUIDynamismRun }; struct VisibleRect { double x, y, w, h; }; struct PositionStringCorrection { double xFactor; double yFactor; }; RequestType requestType; VisibleRect visibleRect; InputOutputState inputOutputState; PositionStringCorrection positionStringCorrection; double zoomFactor; int previewWindowWidth; int previewWindowHeight; int previewTimeout; bool previewFromFullImage = false; bool previewCheckBox; bool randomized; QString filterName; QString filterCommand; QString filterFullPath; QString filterArguments; QString filterHash; }; GmicProcessor(QObject * parent = nullptr); ~GmicProcessor() override; void init(); void setContext(const FilterContext & context); void execute(); bool isProcessingFullImage() const; bool isProcessing() const; bool isIdle() const; bool hasUnfinishedAbortedThreads() const; const gmic_library::gmic_image & previewImage() const; const QStringList & gmicStatus() const; const QList & parametersVisibilityStates() const; void setGmicStatusQuotedParameters(const QVector & quotedParameters); void saveSettings(QSettings & settings); int duration() const; float progress() const; int lastPreviewFilterExecutionDurationMS() const; void resetLastPreviewFilterExecutionDurations(); void recordPreviewFilterExecutionDurationMS(int duration); int averagePreviewFilterExecutionDuration() const; int completedFullImageProcessingCount() const; qint64 lastCompletedExecutionTime() const; public slots: void cancel(); void detachAllUnfinishedAbortedThreads(); void terminateAllThreads(); signals: void previewCommandFailed(QString errorMessage); void fullImageProcessingFailed(QString errorMessage); void previewImageAvailable(); void guiDynamismRunDone(); void fullImageProcessingDone(); void noMoreUnfinishedJobs(); void aboutToSendImagesToHost(); private slots: void onPreviewThreadFinished(); void onApplyThreadFinished(); void onGUIDynamismThreadFinished(); void onAbortedThreadFinished(); void showWaitingCursor(); void hideWaitingCursor(); private: void updateImageNames(gmic_library::gmic_list & imageNames); void abortCurrentFilterThread(); void manageSynchonousRunner(FilterSyncRunner & runner); FilterThread * _filterThread; FilterContext _filterContext; gmic_library::gmic_list * _gmicImages; gmic_library::gmic_image * _previewImage; QList _unfinishedAbortedThreads; unsigned int _previewRandomSeed; QStringList _gmicStatus; QList _parametersVisibilityStates; QTimer _waitingCursorTimer; static const int WAITING_CURSOR_DELAY = 200; QString _lastAppliedFilterPath; QString _lastAppliedFilterHash; QString _lastAppliedCommand; QString _lastAppliedCommandArguments; QStringList _lastAppliedCommandGmicStatus; InputOutputState _lastAppliedCommandInOutState; QElapsedTimer _ongoingFilterExecutionTime; QElapsedTimer _completedExecutionTime; qint64 _lastCompletedExecutionTime; std::deque _lastFilterPreviewExecutionDurations; int _completeFullImageProcessingCount; QVector _gmicStatusQuotedParameters; }; } // namespace GmicQt #endif // GMIC_QT_GMICPROCESSOR_H ================================================ FILE: src/GmicQt.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicQt.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "GmicQt.h" #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "HeadlessProcessor.h" #include "LanguageSettings.h" #include "Logger.h" #include "MainWindow.h" #include "Misc.h" #include "Settings.h" #include "Widgets/InOutPanel.h" #include "Widgets/ProgressInfoWindow.h" #include "gmic.h" #ifdef _IS_MACOS_ #include #include #include #endif namespace { void configureApplication(); void disableModes(const std::list & disabledInputModes, // const std::list & disabledOutputModes); inline bool archIsLittleEndian() { const int x = 1; return (*reinterpret_cast(&x)); } inline unsigned char float2uchar_bounded(const float & in) { return (in < 0.0f) ? 0 : ((in > 255.0f) ? 255 : static_cast(in)); } } // namespace namespace GmicQt { InputMode DefaultInputMode = InputMode::Active; OutputMode DefaultOutputMode = OutputMode::InPlace; const OutputMessageMode DefaultOutputMessageMode = OutputMessageMode::Quiet; const int GmicVersion = gmic_version; const QString & gmicVersionString() { static QString value = QString("%1.%2.%3").arg(gmic_version / 100).arg((gmic_version / 10) % 10).arg(gmic_version % 10); return value; } RunParameters lastAppliedFilterRunParameters(ReturnedRunParametersFlag flag) { configureApplication(); RunParameters parameters; QSettings settings; const QString path = settings.value(QString("LastExecution/host_%1/FilterPath").arg(GmicQtHost::ApplicationShortname)).toString(); parameters.filterPath = path.toStdString(); QString args = settings.value(QString("LastExecution/host_%1/Arguments").arg(GmicQtHost::ApplicationShortname)).toString(); if (flag == ReturnedRunParametersFlag::AfterFilterExecution) { QString lastAppliedCommandGmicStatus = settings.value(QString("LastExecution/host_%1/GmicStatusString").arg(GmicQtHost::ApplicationShortname)).toString(); if (!lastAppliedCommandGmicStatus.isEmpty()) { args = lastAppliedCommandGmicStatus; } } QString command = settings.value(QString("LastExecution/host_%1/Command").arg(GmicQtHost::ApplicationShortname)).toString(); appendWithSpace(command, args); parameters.command = command.toStdString(); parameters.inputMode = (InputMode)settings.value(QString("LastExecution/host_%1/InputMode").arg(GmicQtHost::ApplicationShortname), (int)InputMode::Active).toInt(); parameters.outputMode = (OutputMode)settings.value(QString("LastExecution/host_%1/OutputMode").arg(GmicQtHost::ApplicationShortname), (int)OutputMode::InPlace).toInt(); return parameters; } int run(UserInterfaceMode interfaceMode, // RunParameters parameters, // const std::list & disabledInputModes, // const std::list & disabledOutputModes, // bool * dialogWasAccepted) { int dummy_argc = 1; char dummy_app_name[] = GMIC_QT_APPLICATION_NAME; #ifdef _IS_WINDOWS_ SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX); #endif char * fullexname = nullptr; #ifdef _IS_MACOS_ { char exname[2048] = {0}; // get the path where the executable is stored uint32_t size = sizeof(exname); if (_NSGetExecutablePath(exname, &size) == 0) { printf("Executable path is [%s]\n", exname); fullexname = realpath(exname, nullptr); printf("Full executable name is [%s]\n", fullexname); if (fullexname) { char * fullpath = dirname(fullexname); printf("Full executable path is [%s]\n", fullpath); if (fullpath) { char pluginpath[2048] = {0}; strncpy(pluginpath, fullpath, 2047); strncat(pluginpath, "/GMIC/plugins/:", 2047); char * envpath = getenv("QT_PLUGIN_PATH"); if (envpath) { strncat(pluginpath, envpath, 2047); } printf("Plugins path is [%s]\n", pluginpath); setenv("QT_PLUGIN_PATH", pluginpath, 1); } } } else { fprintf(stderr, "Buffer too small; need size %u\n", size); } setenv("QT_DEBUG_PLUGINS", "1", 1); } #endif if (!fullexname) { fullexname = dummy_app_name; } char * dummy_argv[1] = {fullexname}; disableModes(disabledInputModes, disabledOutputModes); if (interfaceMode == UserInterfaceMode::Silent) { configureApplication(); QCoreApplication app(dummy_argc, dummy_argv); Settings::load(interfaceMode); Logger::setMode(Settings::outputMessageMode()); HeadlessProcessor processor(&app); if (!processor.setPluginParameters(parameters)) { Logger::error(processor.error()); setValueIfNotNullPointer(dialogWasAccepted, false); return 1; } QTimer::singleShot(0, &processor, &HeadlessProcessor::startProcessing); int status = QCoreApplication::exec(); setValueIfNotNullPointer(dialogWasAccepted, processor.processingCompletedProperly()); return status; } else if (interfaceMode == UserInterfaceMode::ProgressDialog) { configureApplication(); QApplication app(dummy_argc, dummy_argv); QApplication::setWindowIcon(QIcon(":resources/gmic_hat.png")); Settings::load(interfaceMode); Logger::setMode(Settings::outputMessageMode()); LanguageSettings::installTranslators(); HeadlessProcessor processor(&app); if (!processor.setPluginParameters(parameters)) { Logger::error(processor.error()); setValueIfNotNullPointer(dialogWasAccepted, false); return 1; } ProgressInfoWindow progressWindow(&processor); unused(progressWindow); processor.startProcessing(); int status = QApplication::exec(); setValueIfNotNullPointer(dialogWasAccepted, processor.processingCompletedProperly()); return status; } else if (interfaceMode == UserInterfaceMode::Full) { configureApplication(); QApplication app(dummy_argc, dummy_argv); QApplication::setWindowIcon(QIcon(":resources/gmic_hat.png")); Settings::load(interfaceMode); LanguageSettings::installTranslators(); MainWindow mainWindow; mainWindow.setPluginParameters(parameters); if (QSettings().value("Config/MainWindowMaximized", false).toBool()) { mainWindow.showMaximized(); } else { mainWindow.show(); } int status = QApplication::exec(); setValueIfNotNullPointer(dialogWasAccepted, mainWindow.isAccepted()); return status; } return 0; } std::string RunParameters::filterName() const { auto position = filterPath.rfind("/"); if (position == std::string::npos) { return filterPath; } return filterPath.substr(position + 1, filterPath.length() - (position + 1)); } template // void calibrateImage(gmic_library::gmic_image & img, const int spectrum, const bool isPreview) { if (!img || !spectrum) { return; } switch (spectrum) { case 1: // To GRAY switch (img.spectrum()) { case 1: // from GRAY break; case 2: // from GRAYA if (isPreview) { T *ptr_r = img.data(0, 0, 0, 0), *ptr_a = img.data(0, 0, 0, 1); cimg_forXY(img, x, y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x ^ y) & 8) << 3); *ptr_r = (T)((a * (unsigned int)*ptr_r + (255 - a) * i) >> 8); ++ptr_r; } } img.channel(0); break; case 3: // from RGB (img.get_shared_channel(0) += img.get_shared_channel(1) += img.get_shared_channel(2)) /= 3; img.channel(0); break; case 4: // from RGBA (img.get_shared_channel(0) += img.get_shared_channel(1) += img.get_shared_channel(2)) /= 3; if (isPreview) { T *ptr_r = img.data(0, 0, 0, 0), *ptr_a = img.data(0, 0, 0, 3); cimg_forXY(img, x, y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x ^ y) & 8) << 3); *ptr_r = (T)((a * (unsigned int)*ptr_r + (255 - a) * i) >> 8); ++ptr_r; } } img.channel(0); break; default: // from multi-channel (>4) img.channel(0); } break; case 2: // To GRAYA switch (img.spectrum()) { case 1: // from GRAY img.resize(-100, -100, 1, 2, 0).get_shared_channel(1).fill(255); break; case 2: // from GRAYA break; case 3: // from RGB (img.get_shared_channel(0) += img.get_shared_channel(1) += img.get_shared_channel(2)) /= 3; img.channels(0, 1).get_shared_channel(1).fill(255); break; case 4: // from RGBA (img.get_shared_channel(0) += img.get_shared_channel(1) += img.get_shared_channel(2)) /= 3; img.get_shared_channel(1) = img.get_shared_channel(3); img.channels(0, 1); break; default: // from multi-channel (>4) img.channels(0, 1); } break; case 3: // to RGB switch (img.spectrum()) { case 1: // from GRAY img.resize(-100, -100, 1, 3); break; case 2: // from GRAYA if (isPreview) { T *ptr_r = img.data(0, 0, 0, 0), *ptr_a = img.data(0, 0, 0, 1); cimg_forXY(img, x, y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x ^ y) & 8) << 3); *ptr_r = (T)((a * (unsigned int)*ptr_r + (255 - a) * i) >> 8); ++ptr_r; } } img.channel(0).resize(-100, -100, 1, 3); break; case 3: // from RGB break; case 4: // from RGBA if (isPreview) { T *ptr_r = img.data(0, 0, 0, 0), *ptr_g = img.data(0, 0, 0, 1), *ptr_b = img.data(0, 0, 0, 2), *ptr_a = img.data(0, 0, 0, 3); cimg_forXY(img, x, y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x ^ y) & 8) << 3); *ptr_r = (T)((a * (unsigned int)*ptr_r + (255 - a) * i) >> 8); *ptr_g = (T)((a * (unsigned int)*ptr_g + (255 - a) * i) >> 8); *ptr_b = (T)((a * (unsigned int)*ptr_b + (255 - a) * i) >> 8); ++ptr_r; ++ptr_g; ++ptr_b; } } img.channels(0, 2); break; default: // from multi-channel (>4) img.channels(0, 2); } break; case 4: // to RGBA switch (img.spectrum()) { case 1: // from GRAY img.resize(-100, -100, 1, 4).get_shared_channel(3).fill(255); break; case 2: // from GRAYA img.resize(-100, -100, 1, 4, 0); img.get_shared_channel(3) = img.get_shared_channel(1); img.get_shared_channel(1) = img.get_shared_channel(0); img.get_shared_channel(2) = img.get_shared_channel(0); break; case 3: // from RGB img.resize(-100, -100, 1, 4, 0).get_shared_channel(3).fill(255); break; case 4: // from RGBA break; default: // from multi-channel (>4) img.channels(0, 3); } break; } } template void calibrateImage(gmic_library::gmic_image & img, const int spectrum, const bool is_preview); template void calibrateImage(gmic_library::gmic_image & img, const int spectrum, const bool is_preview); void convertGmicImageToQImage(const gmic_library::gmic_image & in, QImage & out) { out = QImage(in.width(), in.height(), QImage::Format_RGB888); if (in.spectrum() >= 4 && out.format() != QImage::Format_ARGB32) { out = out.convertToFormat(QImage::Format_ARGB32); } if (in.spectrum() == 3 && out.format() != QImage::Format_RGB888) { out = out.convertToFormat(QImage::Format_RGB888); } if (in.spectrum() == 2 && out.format() != QImage::Format_ARGB32) { out = out.convertToFormat(QImage::Format_ARGB32); } // Format_Grayscale8 was added in Qt 5.5. #if QT_VERSION_GTE(5, 5, 0) if (in.spectrum() == 1 && out.format() != QImage::Format_Grayscale8) { out = out.convertToFormat(QImage::Format_Grayscale8); } #else if (in.spectrum() == 1) { out = out.convertToFormat(QImage::Format_RGB888); } #endif if (in.spectrum() >= 4) { const float * srcR = in.data(0, 0, 0, 0); const float * srcG = in.data(0, 0, 0, 1); const float * srcB = in.data(0, 0, 0, 2); const float * srcA = in.data(0, 0, 0, 3); int height = out.height(); if (archIsLittleEndian()) { for (int y = 0; y < height; ++y) { int n = in.width(); unsigned char * dst = out.scanLine(y); while (n--) { dst[0] = float2uchar_bounded(*srcB++); dst[1] = float2uchar_bounded(*srcG++); dst[2] = float2uchar_bounded(*srcR++); dst[3] = float2uchar_bounded(*srcA++); dst += 4; } } } else { for (int y = 0; y < height; ++y) { int n = in.width(); unsigned char * dst = out.scanLine(y); while (n--) { dst[0] = float2uchar_bounded(*srcA++); dst[1] = float2uchar_bounded(*srcR++); dst[2] = float2uchar_bounded(*srcG++); dst[3] = float2uchar_bounded(*srcB++); dst += 4; } } } } else if (in.spectrum() == 3) { const float * srcR = in.data(0, 0, 0, 0); const float * srcG = in.data(0, 0, 0, 1); const float * srcB = in.data(0, 0, 0, 2); int height = out.height(); for (int y = 0; y < height; ++y) { int n = in.width(); unsigned char * dst = out.scanLine(y); while (n--) { dst[0] = float2uchar_bounded(*srcR++); dst[1] = float2uchar_bounded(*srcG++); dst[2] = float2uchar_bounded(*srcB++); dst += 3; } } } else if (in.spectrum() == 2) { // // Gray + Alpha // const float * src = in.data(0, 0, 0, 0); const float * srcA = in.data(0, 0, 0, 1); int height = out.height(); if (archIsLittleEndian()) { for (int y = 0; y < height; ++y) { int n = in.width(); unsigned char * dst = out.scanLine(y); while (n--) { dst[2] = dst[1] = dst[0] = float2uchar_bounded(*src++); dst[3] = float2uchar_bounded(*srcA++); dst += 4; } } } else { for (int y = 0; y < height; ++y) { int n = in.width(); unsigned char * dst = out.scanLine(y); while (n--) { dst[1] = dst[2] = dst[3] = float2uchar_bounded(*src++); dst[0] = float2uchar_bounded(*srcA++); dst += 4; } } } } else { // // 8-bits Gray levels // const float * src = in.data(0, 0, 0, 0); int height = out.height(); for (int y = 0; y < height; ++y) { int n = in.width(); unsigned char * dst = out.scanLine(y); #if QT_VERSION_GTE(5, 5, 0) while (n--) { *dst++ = static_cast(*src++); } #else while (n--) { dst[0] = float2uchar_bounded(*src); dst[1] = float2uchar_bounded(*src); dst[2] = float2uchar_bounded(*src); ++src; dst += 3; } #endif } } } void convertQImageToGmicImage(const QImage & in, gmic_library::gmic_image & out) { Q_ASSERT_X(in.format() == QImage::Format_ARGB32 || in.format() == QImage::Format_RGB888, "convert", "bad input format"); if (in.format() == QImage::Format_ARGB32) { const int w = in.width(); const int h = in.height(); out.assign(w, h, 1, 4); float * dstR = out.data(0, 0, 0, 0); float * dstG = out.data(0, 0, 0, 1); float * dstB = out.data(0, 0, 0, 2); float * dstA = out.data(0, 0, 0, 3); if (archIsLittleEndian()) { for (int y = 0; y < h; ++y) { const unsigned char * src = in.scanLine(y); int n = in.width(); while (n--) { *dstB++ = static_cast(src[0]); *dstG++ = static_cast(src[1]); *dstR++ = static_cast(src[2]); *dstA++ = static_cast(src[3]); src += 4; } } } else { for (int y = 0; y < h; ++y) { const unsigned char * src = in.scanLine(y); int n = in.width(); while (n--) { *dstA++ = static_cast(src[0]); *dstR++ = static_cast(src[1]); *dstG++ = static_cast(src[2]); *dstB++ = static_cast(src[3]); src += 4; } } } return; } if (in.format() == QImage::Format_RGB888) { const int w = in.width(); const int h = in.height(); out.assign(w, h, 1, 3); float * dstR = out.data(0, 0, 0, 0); float * dstG = out.data(0, 0, 0, 1); float * dstB = out.data(0, 0, 0, 2); for (int y = 0; y < h; ++y) { const unsigned char * src = in.scanLine(y); int n = in.width(); while (n--) { *dstR++ = static_cast(src[0]); *dstG++ = static_cast(src[1]); *dstB++ = static_cast(src[2]); src += 3; } } return; } } } // namespace GmicQt namespace { void configureApplication() { QCoreApplication::setOrganizationName(GMIC_QT_ORGANISATION_NAME); QCoreApplication::setOrganizationDomain(GMIC_QT_ORGANISATION_DOMAIN); QCoreApplication::setApplicationName(GMIC_QT_APPLICATION_NAME); QCoreApplication::setAttribute(Qt::AA_DontUseNativeMenuBar); #if !QT_VERSION_GTE(6, 0, 0) if (QSettings().value(HIGHDPI_KEY, false).toBool()) { QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); } #endif } void disableModes(const std::list & disabledInputModes, // const std::list & disabledOutputModes) { for (const GmicQt::InputMode & mode : disabledInputModes) { GmicQt::InOutPanel::disableInputMode(mode); } for (const GmicQt::OutputMode & mode : disabledOutputModes) { GmicQt::InOutPanel::disableOutputMode(mode); } } } // namespace ================================================ FILE: src/GmicQt.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicQt.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_GMIC_QT_H #define GMIC_QT_GMIC_QT_H namespace gmic_library { template struct gmic_image; template struct gmic_list; } // namespace gmic_library #ifndef gmic_pixel_type #define gmic_pixel_type float #endif #define GMIC_QT_STRINGIFY(X) #X #define GMIC_QT_XSTRINGIFY(X) GMIC_QT_STRINGIFY(X) #define gmic_pixel_type_str GMIC_QT_XSTRINGIFY(gmic_pixel_type) #include #include class QString; class QImage; namespace GmicQt { enum class UserInterfaceMode { Silent, ProgressDialog, Full }; enum class InputMode { NoInput, Active, All, ActiveAndBelow, ActiveAndAbove, AllVisible, AllInvisible, AllVisiblesDesc_DEPRECATED, /* Removed since 2.8.2 */ AllInvisiblesDesc_DEPRECATED, /* Removed since 2.8.2 */ AllDesc_DEPRECATED, /* Removed since 2.8.2 */ Unspecified = 100 }; extern InputMode DefaultInputMode; enum class OutputMode { InPlace, NewLayers, NewActiveLayers, NewImage, Unspecified = 100 }; extern OutputMode DefaultOutputMode; enum class OutputMessageMode { Quiet, VerboseLayerName_DEPRECATED = Quiet, /* Removed since 2.9.5 */ VerboseConsole = Quiet + 2, VerboseLogFile, VeryVerboseConsole, VeryVerboseLogFile, DebugConsole, DebugLogFile, Unspecified = 100 }; extern const OutputMessageMode DefaultOutputMessageMode; const QString & gmicVersionString(); extern const int GmicVersion; struct RunParameters { std::string command; std::string filterPath; InputMode inputMode = InputMode::Unspecified; OutputMode outputMode = OutputMode::Unspecified; std::string filterName() const; }; /** * A G'MIC filter may update the parameters it has received. This enum must be * used to tell the function lastAppliedFilterRunParameters() whether it * should return the parameters as they where supplied to the last applied * filter, or as they have been "returned" by this filter. If the filter does * not update its parameters, then "After" means the same as "Before". */ enum class ReturnedRunParametersFlag { BeforeFilterExecution, AfterFilterExecution }; RunParameters lastAppliedFilterRunParameters(ReturnedRunParametersFlag flag); /** * Function that should be called to launch the plugin from the host adaptation code. * @return The exit status of Qt's main event loop (QApplication::exec()). */ int run(UserInterfaceMode interfaceMode = UserInterfaceMode::Full, // RunParameters parameters = RunParameters(), // const std::list & disabledInputModes = std::list(), // const std::list & disabledOutputModes = std::list(), // bool * dialogWasAccepted = nullptr); /* * What follows may be helpful for the implementation of a host_something.cpp */ /** * Calibrate any image to fit the required number of channels (1:GRAY, 2:GRAYA, 3:RGB or 4:RGBA). * * Instantiated for T in {unsigned char, gmic_pixel_type} */ template // void calibrateImage(gmic_library::gmic_image & img, const int spectrum, const bool isPreview); void convertGmicImageToQImage(const gmic_library::gmic_image & in, QImage & out); void convertQImageToGmicImage(const QImage & in, gmic_library::gmic_image & out); } // namespace GmicQt #endif // GMIC_QT_GMIC_QT_H ================================================ FILE: src/GmicStdlib.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicStdlib.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "GmicStdlib.h" #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "GmicQt.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { QByteArray GmicStdLib::Array; void GmicStdLib::loadStdLib() // TODO : Remove { QString path = QString("%1update%2.gmic").arg(gmicConfigPath(false)).arg(gmic_version); QFileInfo info(path); QFile stdlib(path); if ((info.size() == 0) || !stdlib.open(QFile::ReadOnly)) { gmic_image stdlib_h = gmic::decompress_stdlib(); Array = QByteArray::fromRawData(stdlib_h, stdlib_h.size()); Array[Array.size() - 1] = '\n'; } else { Array = stdlib.readAll(); } } QString GmicStdLib::substituteSourceVariables(QString text) { QRegularExpression reVariables[] = { #ifdef _IS_WINDOWS_ QRegularExpression{"%([A-Za-z_][A-Za-z0-9_]+)%"} // #else QRegularExpression{"\\$([A-Za-z_][A-Za-z0-9_]+)"}, // QRegularExpression{"\\${([A-Za-z_][A-Za-z0-9_]+)}"} // #endif }; #ifdef _IS_WINDOWS_ text.replace("%VERSION%", QString::number(GmicQt::GmicVersion)); #else text.replace("$VERSION", QString::number(GmicQt::GmicVersion)); text.replace("${VERSION}", QString::number(GmicQt::GmicVersion)); #endif for (QRegularExpression re : reVariables) { QRegularExpressionMatch match; while ((match = re.match(text)).hasMatch()) { QByteArray value = qgetenv(match.captured(1).toLocal8Bit().constData()); if (value.isEmpty()) { // Undefined variables should yield an ignored source return {}; } text.replace(match.captured(0), QString::fromLocal8Bit(value)); } } return text; } QStringList GmicStdLib::substituteSourceVariables(const QStringList & list) { QStringList result; for (const QString & str : list) { QString source = substituteSourceVariables(str); if (!source.isEmpty()) { result << source; } } return result; } QByteArray GmicStdLib::hash() { return QCryptographicHash::hash(Array, QCryptographicHash::Sha1); } } // namespace GmicQt ================================================ FILE: src/GmicStdlib.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicStdlib.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_GMICSTDLIB_H #define GMIC_QT_GMICSTDLIB_H #include #include #include namespace GmicQt { class GmicStdLib { public: GmicStdLib() = delete; static void loadStdLib(); static QByteArray Array; static QString substituteSourceVariables(QString text); static QStringList substituteSourceVariables(const QStringList &list); static QByteArray hash(); }; } // namespace GmicQt #endif // GMIC_QT_GMICSTDLIB_H ================================================ FILE: src/HeadlessProcessor.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file HeadlessProcessor.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "HeadlessProcessor.h" #include #include #include #include #include "Common.h" #include "FilterParameters/FilterParametersWidget.h" #include "FilterSelector/FiltersPresenter.h" #include "FilterTextTranslator.h" #include "FilterThread.h" #include "GmicStdlib.h" #include "HtmlTranslator.h" #include "Logger.h" #include "Misc.h" #include "ParametersCache.h" #include "Settings.h" #include "Updater.h" #include "Widgets/ProgressInfoWindow.h" #include "gmic.h" #ifdef _IS_WINDOWS_ #include #include #include #endif namespace GmicQt { /** * @brief HeadlessProcessor::HeadlessProcessor using "last parameters" from config file * @param parent */ HeadlessProcessor::HeadlessProcessor(QObject * parent) // : QObject(parent), _filterThread(nullptr), _gmicImages(new gmic_library::gmic_list) { _progressWindow = nullptr; _processingCompletedProperly = false; GmicStdLib::Array = Updater::getInstance()->buildFullStdlib(); } HeadlessProcessor::~HeadlessProcessor() { delete _gmicImages; } bool HeadlessProcessor::setPluginParameters(const RunParameters & parameters) { _path = QString::fromStdString(parameters.filterPath); _inputMode = (parameters.inputMode == InputMode::Unspecified) ? DefaultInputMode : parameters.inputMode; _outputMode = (parameters.outputMode == OutputMode::Unspecified) ? DefaultOutputMode : parameters.outputMode; if (_path.isEmpty()) { // A pure command if (parameters.command.empty()) { _errorMessage = tr("At least a filter path or a filter command must be provided."); } else { _filterName = tr("Custom command (%1)").arg(elided(QString::fromStdString(parameters.command), 35)); _command = "skip 0"; _arguments = QString::fromStdString(parameters.command); } } else { // A path is given QString plainPath = HtmlTranslator::html2txt(_path, false); FiltersPresenter::Filter filter = FiltersPresenter::findFilterFromAbsolutePathOrNameInStdlib(plainPath); if (filter.isInvalid()) { _errorMessage = tr("Cannot find filter matching path %1").arg(_path); } else { QString error; QVector quoted; QVector sizes; QStringList defaultParameters = FilterParametersWidget::defaultParameterList(filter.parameters, &error, "ed, &sizes); if (!error.isEmpty()) { _errorMessage = tr("Error parsing filter parameters definition for filter:\n\n%1\n\nCannot retrieve default parameters.\n\n%2").arg(_path).arg(error); } else { if (filter.isAFave) { // sizes have been computed, but we replace 'defaults' with Fave's ones. defaultParameters = filter.defaultParameterValues; } if (parameters.command.empty()) { _filterName = FilterTextTranslator::translate(filter.plainTextName); _hash = filter.hash; _command = filter.command; _arguments = flattenGmicParameterList(defaultParameters, quoted); _gmicStatusQuotedParameters = quoted; } else { QString command; QString arguments; QStringList providedParameters; if (!parseGmicUniqueFilterCommand(parameters.command.c_str(), command, arguments) || // !parseGmicFilterParameters(arguments, providedParameters)) { _errorMessage = tr("Error parsing supplied command: %1").arg(QString::fromStdString(parameters.command)); } else { if (command != filter.command) { _errorMessage = tr("Supplied command (%1) does not match path (%2), (should be %3).").arg(command).arg(plainPath).arg(filter.command); } else { _filterName = FilterTextTranslator::translate(filter.plainTextName); _hash = filter.hash; _command = command; auto expandedDefaults = expandParameterList(defaultParameters, sizes); auto completed = completePrefixFromFullList(providedParameters, expandedDefaults); _arguments = flattenGmicParameterList(mergeSubsequences(completed, sizes), quoted); _gmicStatusQuotedParameters = quoted; } } } } } } return _errorMessage.isEmpty(); } const QString & HeadlessProcessor::error() const { return _errorMessage; } void HeadlessProcessor::startProcessing() { if (!_errorMessage.isEmpty()) { endApplication(_errorMessage); } _singleShotTimer.setInterval(750); _singleShotTimer.setSingleShot(true); connect(&_singleShotTimer, &QTimer::timeout, this, &HeadlessProcessor::progressWindowShouldShow); ParametersCache::load(true); _singleShotTimer.start(); _gmicImages->assign(); gmic_list imageNames; GmicQtHost::getCroppedImages(*_gmicImages, imageNames, -1, -1, -1, -1, _inputMode); if (!_progressWindow) { GmicQtHost::showMessage(QString("G'MIC: %1 %2").arg(_command).arg(_arguments).toUtf8().constData()); } QString env = QString("_input_layers=%1").arg((int)_inputMode); env += QString(" _output_mode=%1").arg((int)_outputMode); env += QString(" _output_messages=%1").arg((int)Settings::outputMessageMode()); _filterThread = new FilterThread(this, _command, _arguments, env); _filterThread->swapImages(*_gmicImages); _filterThread->setImageNames(imageNames); _processingCompletedProperly = false; connect(_filterThread, &FilterThread::finished, this, &HeadlessProcessor::onProcessingFinished); _timer.setInterval(250); connect(&_timer, &QTimer::timeout, this, &HeadlessProcessor::sendProgressInformation); _timer.start(); _filterThread->start(); } QString HeadlessProcessor::command() const { return _command; } QString HeadlessProcessor::filterName() const { return _filterName; } void HeadlessProcessor::setProgressWindow(ProgressInfoWindow * progressInfoWindow) { _progressWindow = progressInfoWindow; } bool HeadlessProcessor::processingCompletedProperly() { return _processingCompletedProperly; } void HeadlessProcessor::sendProgressInformation() { if (!_filterThread) { return; } float progress = _filterThread->progress(); int ms = _filterThread->duration(); unsigned long memory = 0; #if defined(_IS_UNIX_) QFile status("/proc/self/status"); if (status.open(QFile::ReadOnly)) { QByteArray text = status.readAll(); const char * str = strstr(text.constData(), "VmRSS:"); unsigned int kiB = 0; if (str && sscanf(str + 7, "%u", &kiB)) { memory = 1024 * (unsigned long)kiB; } } #elif defined(_IS_WINDOWS_) PROCESS_MEMORY_COUNTERS counters; if (GetProcessMemoryInfo(GetCurrentProcess(), &counters, sizeof(counters))) { memory = static_cast(counters.WorkingSetSize); } #else // TODO: MACOS #endif emit progression(progress, ms, memory); } void HeadlessProcessor::onProcessingFinished() { _timer.stop(); QString errorMessage; QStringList status = _filterThread->gmicStatus(); if (_filterThread->failed()) { errorMessage = _filterThread->errorMessage(); if (errorMessage.isEmpty()) { errorMessage = tr("Filter execution failed, but with no error message."); } } else { gmic_list images = _filterThread->images(); if (!_filterThread->aborted()) { GmicQtHost::outputImages(images, _filterThread->imageNames(), _outputMode); _processingCompletedProperly = true; } QSettings settings; if (!status.isEmpty() && !_hash.isEmpty()) { ParametersCache::setValues(_hash, status); ParametersCache::save(); QString statusString = flattenGmicParameterList(status, _gmicStatusQuotedParameters); settings.setValue(QString("LastExecution/host_%1/GmicStatusString").arg(GmicQtHost::ApplicationShortname), statusString); } settings.setValue(QString("LastExecution/host_%1/FilterPath").arg(GmicQtHost::ApplicationShortname), _path); settings.setValue(QString("LastExecution/host_%1/FilterHash").arg(GmicQtHost::ApplicationShortname), _hash); settings.setValue(QString("LastExecution/host_%1/Command").arg(GmicQtHost::ApplicationShortname), _command); settings.setValue(QString("LastExecution/host_%1/Arguments").arg(GmicQtHost::ApplicationShortname), _arguments); settings.setValue(QString("LastExecution/host_%1/InputMode").arg(GmicQtHost::ApplicationShortname), (int)_inputMode); settings.setValue(QString("LastExecution/host_%1/OutputMode").arg(GmicQtHost::ApplicationShortname), (int)_outputMode); } _filterThread->deleteLater(); _filterThread = nullptr; endApplication(errorMessage); } void HeadlessProcessor::cancel() { if (_filterThread) { _filterThread->abortGmic(); } } void HeadlessProcessor::endApplication(const QString & errorMessage) { _singleShotTimer.stop(); emit done(errorMessage); if (!errorMessage.isEmpty()) { Logger::error(errorMessage); } QCoreApplication::exit(!errorMessage.isEmpty()); } } // namespace GmicQt ================================================ FILE: src/HeadlessProcessor.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file HeadlessProcessor.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_HEADLESSPROCESSOR_H #define GMIC_QT_HEADLESSPROCESSOR_H #include #include #include #include #include "GmicQt.h" namespace gmic_library { template struct gmic_list; } namespace GmicQt { class FilterThread; class ProgressInfoWindow; class HeadlessProcessor : public QObject { Q_OBJECT public: explicit HeadlessProcessor(QObject * parent); ~HeadlessProcessor() override; QString command() const; QString filterName() const; void setProgressWindow(ProgressInfoWindow *); bool processingCompletedProperly(); bool setPluginParameters(const RunParameters & parameters); const QString & error() const; public slots: void startProcessing(); void sendProgressInformation(); void onProcessingFinished(); void cancel(); signals: void progressWindowShouldShow(); void done(QString errorMessage); void progression(float progress, int duration, unsigned long memory); private: void endApplication(const QString & errorMessage); FilterThread * _filterThread; gmic_library::gmic_list * _gmicImages; ProgressInfoWindow * _progressWindow; QTimer _timer; QString _filterName; QString _path; QString _command; QString _arguments; OutputMode _outputMode; InputMode _inputMode; QTimer _singleShotTimer; bool _processingCompletedProperly; QString _errorMessage; QString _hash; QVector _gmicStatusQuotedParameters; }; } // namespace GmicQt #endif // GMIC_QT_HEADLESSPROCESSOR_H ================================================ FILE: src/Host/8bf/host_8bf.cpp ================================================ /* * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * Copyright (C) 2020, 2021 Nicholas Hayes * * Portions Copyright 2017 Sebastien Fourey * * G'MIC-Qt 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. * * G'MIC-Qt 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Host/GmicQtHost.h" #include "ImageTools.h" #include "GmicQt.h" #include "gmic.h" #include #include struct Gmic8bfLayer { int32_t width; int32_t height; bool visible; QString name; gmic_library::gmic_image imageData; }; namespace host_8bf { QString outputDir; QVector layers; int32_t activeLayerIndex; bool grayScale; uint8_t bitsPerChannel; int32_t documentWidth; int32_t documentHeight; int32_t hostTileWidth; int32_t hostTileHeight; cmsContext lcmsContext; cmsHPROFILE imageProfile; cmsHPROFILE displayProfile; bool fetchedDisplayProfileFromQtWidget; cmsHTRANSFORM transform; cmsUInt32Number transformFormat; } namespace GmicQtHost { const QString ApplicationName = QString("8bf Hosts"); const char * const ApplicationShortname = GMIC_QT_XSTRINGIFY(GMIC_HOST); const bool DarkThemeIsDefault = true; } namespace { QString ReadUTF8String(QDataStream& dataStream) { int32_t length = 0; dataStream >> length; if (length == 0) { return QString(); } else { QByteArray utf8Bytes(length, '\0'); dataStream.readRawData(utf8Bytes.data(), length); return QString::fromUtf8(utf8Bytes); } } enum class InputFileParseStatus { Ok, FileOpenError, BadFileSignature, UnknownFileVersion, InvalidArgument, OutOfMemory, EndOfFile, PlatformEndianMismatch, FileReadError, IccProfileError }; InputFileParseStatus FillTileBuffer( QDataStream& dataStream, const size_t& requiredSize, char* buffer) { size_t totalBytesRead = 0; while (totalBytesRead < requiredSize) { int bytesToRead = static_cast(std::min(requiredSize - totalBytesRead, static_cast(INT_MAX))); int bytesRead = dataStream.readRawData(buffer + totalBytesRead, bytesToRead); if (bytesRead <= 0) { return InputFileParseStatus::EndOfFile; } totalBytesRead += bytesRead; } return InputFileParseStatus::Ok; } InputFileParseStatus CopyTileToGmicImage8Interleaved( const unsigned char* tileBuffer, size_t tileBufferStride, int left, int top, int right, int bottom, gmic_library::gmic_image& out) { const int imageWidth = out.width(); const int numberOfChannels = out.spectrum(); if (numberOfChannels == 3) { float* rPlane = out.data(0, 0, 0, 0); float* gPlane = out.data(0, 0, 0, 1); float* bPlane = out.data(0, 0, 0, 2); for (int y = top; y < bottom; ++y) { const unsigned char* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstR = rPlane + planeStart; float* dstG = gPlane + planeStart; float* dstB = bPlane + planeStart; for (int x = left; x < right; x++) { *dstR++ = static_cast(src[0]); *dstG++ = static_cast(src[1]); *dstB++ = static_cast(src[2]); src += 3; } } } else if (numberOfChannels == 4) { float* rPlane = out.data(0, 0, 0, 0); float* gPlane = out.data(0, 0, 0, 1); float* bPlane = out.data(0, 0, 0, 2); float* aPlane = out.data(0, 0, 0, 3); for (int y = top; y < bottom; ++y) { const unsigned char* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstR = rPlane + planeStart; float* dstG = gPlane + planeStart; float* dstB = bPlane + planeStart; float* dstA = aPlane + planeStart; for (int x = left; x < right; x++) { *dstR++ = static_cast(src[0]); *dstG++ = static_cast(src[1]); *dstB++ = static_cast(src[2]); *dstA++ = static_cast(src[3]); src += 4; } } } else if (numberOfChannels == 2) { float* grayPlane = out.data(0, 0, 0, 0); float* alphaPlane = out.data(0, 0, 0, 1); for (int y = top; y < bottom; ++y) { const unsigned char* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstGray = grayPlane + planeStart; float* dstAlpha = alphaPlane + planeStart; for (int x = left; x < right; x++) { *dstGray++ = static_cast(src[0]); *dstAlpha++ = static_cast(src[1]); src += 2; } } } else if (numberOfChannels == 1) { float* grayPlane = out.data(0, 0, 0, 0); for (int y = top; y < bottom; ++y) { const unsigned char* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstGray = grayPlane + planeStart; for (int x = left; x < right; x++) { *dstGray++ = static_cast(src[0]); src++; } } } else { return InputFileParseStatus::InvalidArgument; } return InputFileParseStatus::Ok; } InputFileParseStatus CopyTileToGmicImage8Planar( const unsigned char* tileBuffer, size_t tileBufferStride, int left, int top, int right, int bottom, int channelIndex, gmic_library::gmic_image& image) { const int imageWidth = image.width(); float* plane = image.data(0, 0, 0, channelIndex); for (int y = top; y < bottom; ++y) { const unsigned char* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); float* dst = plane + (static_cast(y) * static_cast(imageWidth)) + left; for (int x = left; x < right; x++) { *dst++ = static_cast(src[0]); src++; } } return InputFileParseStatus::Ok; } InputFileParseStatus ConvertGmic8bfInputToGmicImage8( QDataStream& dataStream, int32_t inTileWidth, int32_t inTileHeight, int32_t inNumberOfChannels, bool planar, gmic_library::gmic_image& image) { int32_t maxTileStride = planar ? inTileWidth : inTileWidth * inNumberOfChannels; size_t tileBufferSize = static_cast(maxTileStride) * inTileHeight; std::unique_ptr tileBuffer(new (std::nothrow) char[tileBufferSize]); if (!tileBuffer) { return InputFileParseStatus::OutOfMemory; } int width = image.width(); int height = image.height(); if (planar) { for (int i = 0; i < inNumberOfChannels; i++) { for (int y = 0; y < height; y += inTileHeight) { int top = y; int bottom = std::min(y + inTileHeight, height); size_t rowCount = static_cast(bottom) - top; for (int x = 0; x < width; x += inTileWidth) { int left = x; int right = std::min(x + inTileWidth, width); size_t tileBufferStride = static_cast(right) - left; size_t bytesToRead = tileBufferStride * rowCount; InputFileParseStatus status = FillTileBuffer(dataStream, bytesToRead, tileBuffer.get()); if (status != InputFileParseStatus::Ok) { return status; } status = CopyTileToGmicImage8Planar( reinterpret_cast(tileBuffer.get()), tileBufferStride, left, top, right, bottom, i, image); if (status != InputFileParseStatus::Ok) { return status; } } } } } else { for (int y = 0; y < height; y += inTileHeight) { int top = y; int bottom = std::min(y + inTileHeight, height); size_t rowCount = static_cast(bottom) - top; for (int x = 0; x < width; x += inTileWidth) { int left = x; int right = std::min(x + inTileWidth, width); size_t columnCount = static_cast(right) - left; size_t tileBufferStride = columnCount * inNumberOfChannels; size_t bytesToRead = tileBufferStride * rowCount; InputFileParseStatus status = FillTileBuffer(dataStream, bytesToRead, tileBuffer.get()); if (status != InputFileParseStatus::Ok) { return status; } status = CopyTileToGmicImage8Interleaved( reinterpret_cast(tileBuffer.get()), tileBufferStride, left, top, right, bottom, image); if (status != InputFileParseStatus::Ok) { return status; } } } } return InputFileParseStatus::Ok; } InputFileParseStatus CopyTileToGmicImage16Interleaved( const unsigned short* tileBuffer, size_t tileBufferStride, int left, int top, int right, int bottom, gmic_library::gmic_image& image, const QVector& sixteenBitToEightBitLUT) { const int imageWidth = image.width(); if (image.spectrum() == 3) { float* rPlane = image.data(0, 0, 0, 0); float* gPlane = image.data(0, 0, 0, 1); float* bPlane = image.data(0, 0, 0, 2); for (int y = top; y < bottom; ++y) { const unsigned short* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstR = rPlane + planeStart; float* dstG = gPlane + planeStart; float* dstB = bPlane + planeStart; for (int x = left; x < right; x++) { *dstR++ = sixteenBitToEightBitLUT[src[0]]; *dstG++ = sixteenBitToEightBitLUT[src[1]]; *dstB++ = sixteenBitToEightBitLUT[src[2]]; src += 3; } } } else if (image.spectrum() == 4) { float* rPlane = image.data(0, 0, 0, 0); float* gPlane = image.data(0, 0, 0, 1); float* bPlane = image.data(0, 0, 0, 2); float* aPlane = image.data(0, 0, 0, 3); for (int y = top; y < bottom; ++y) { const unsigned short* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstR = rPlane + planeStart; float* dstG = gPlane + planeStart; float* dstB = bPlane + planeStart; float* dstA = aPlane + planeStart; for (int x = left; x < right; x++) { *dstR++ = sixteenBitToEightBitLUT[src[0]]; *dstG++ = sixteenBitToEightBitLUT[src[1]]; *dstB++ = sixteenBitToEightBitLUT[src[2]]; *dstA++ = sixteenBitToEightBitLUT[src[3]]; src += 4; } } } else if (image.spectrum() == 2) { float* grayPlane = image.data(0, 0, 0, 0); float* alphaPlane = image.data(0, 0, 0, 1); for (int y = top; y < bottom; ++y) { const unsigned short* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstGray = grayPlane + planeStart; float* dstAlpha = alphaPlane + planeStart; for (int x = left; x < right; x++) { *dstGray++ = sixteenBitToEightBitLUT[src[0]]; *dstAlpha++ = sixteenBitToEightBitLUT[src[1]]; src += 2; } } } else if (image.spectrum() == 1) { float* grayPlane = image.data(0, 0, 0, 0); for (int y = top; y < bottom; ++y) { const unsigned short* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstGray = grayPlane + planeStart; for (int x = left; x < right; x++) { *dstGray++ = sixteenBitToEightBitLUT[src[0]]; src++; } } } else { return InputFileParseStatus::InvalidArgument; } return InputFileParseStatus::Ok; } InputFileParseStatus CopyTileToGmicImage16Planar( const unsigned short* tileBuffer, size_t tileBufferStride, int left, int top, int right, int bottom, int channelIndex, gmic_library::gmic_image& image, const QVector& sixteenBitToEightBitLUT) { const int imageWidth = image.width(); float* plane = image.data(0, 0, 0, channelIndex); for (int y = top; y < bottom; ++y) { const unsigned short* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); float* dst = plane + (static_cast(y) * imageWidth) + left; for (int x = left; x < right; x++) { *dst++ = sixteenBitToEightBitLUT[src[0]]; src++; } } return InputFileParseStatus::Ok; } InputFileParseStatus ConvertGmic8bfInputToGmicImage16( QDataStream& dataStream, int32_t inTileWidth, int32_t inTileHeight, int32_t inNumberOfChannels, bool planar, gmic_library::gmic_image& image) { size_t maxTileStride = planar ? inTileWidth : static_cast(inTileWidth) * inNumberOfChannels; size_t tileBufferSize = maxTileStride * inTileHeight * 2; std::unique_ptr tileBuffer(new (std::nothrow) char[tileBufferSize]); if (!tileBuffer) { return InputFileParseStatus::OutOfMemory; } QVector sixteenBitToEightBitLUT; sixteenBitToEightBitLUT.reserve(65536); for (int i = 0; i < sixteenBitToEightBitLUT.capacity(); i++) { // G'MIC expect the input image data to be a floating-point value in the range of [0, 255]. // We use a lookup table to avoid having to repeatedly perform division on the same values. sixteenBitToEightBitLUT.push_back(static_cast(i) / 257.0f); } int width = image.width(); int height = image.height(); if (planar) { for (int i = 0; i < inNumberOfChannels; i++) { for (int y = 0; y < height; y += inTileHeight) { int top = y; int bottom = std::min(y + inTileHeight, height); size_t rowCount = static_cast(bottom) - top; for (int x = 0; x < width; x += inTileWidth) { int left = x; int right = std::min(x + inTileWidth, width); size_t tileBufferStride = static_cast(right) - left; size_t bytesToRead = tileBufferStride * rowCount * 2; InputFileParseStatus status = FillTileBuffer(dataStream, bytesToRead, tileBuffer.get()); if (status != InputFileParseStatus::Ok) { return status; } status = CopyTileToGmicImage16Planar( reinterpret_cast(tileBuffer.get()), tileBufferStride, left, top, right, bottom, i, image, sixteenBitToEightBitLUT); if (status != InputFileParseStatus::Ok) { return status; } } } } } else { for (int y = 0; y < height; y += inTileHeight) { int top = y; int bottom = std::min(y + inTileHeight, height); size_t rowCount = static_cast(bottom) - top; for (int x = 0; x < width; x += inTileWidth) { int left = x; int right = std::min(x + inTileWidth, width); size_t columnCount = static_cast(right) - left; size_t tileBufferStride = columnCount * inNumberOfChannels; size_t bytesToRead = tileBufferStride * rowCount * 2; InputFileParseStatus status = FillTileBuffer(dataStream, bytesToRead, tileBuffer.get()); if (status != InputFileParseStatus::Ok) { return status; } status = CopyTileToGmicImage16Interleaved( reinterpret_cast(tileBuffer.get()), tileBufferStride, left, top, right, bottom, image, sixteenBitToEightBitLUT); if (status != InputFileParseStatus::Ok) { return status; } } } } return InputFileParseStatus::Ok; } InputFileParseStatus CopyTileToGmicImage32Interleaved( const float* tileBuffer, size_t tileBufferStride, int left, int top, int right, int bottom, gmic_library::gmic_image& out) { const int imageWidth = out.width(); const int numberOfChannels = out.spectrum(); if (numberOfChannels == 3) { float* rPlane = out.data(0, 0, 0, 0); float* gPlane = out.data(0, 0, 0, 1); float* bPlane = out.data(0, 0, 0, 2); for (int y = top; y < bottom; ++y) { const float* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstR = rPlane + planeStart; float* dstG = gPlane + planeStart; float* dstB = bPlane + planeStart; for (int x = left; x < right; x++) { *dstR++ = src[0]; *dstG++ = src[1]; *dstB++ = src[2]; src += 3; } } } else if (numberOfChannels == 4) { float* rPlane = out.data(0, 0, 0, 0); float* gPlane = out.data(0, 0, 0, 1); float* bPlane = out.data(0, 0, 0, 2); float* aPlane = out.data(0, 0, 0, 3); for (int y = top; y < bottom; ++y) { const float* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstR = rPlane + planeStart; float* dstG = gPlane + planeStart; float* dstB = bPlane + planeStart; float* dstA = aPlane + planeStart; for (int x = left; x < right; x++) { *dstR++ = src[0]; *dstG++ = src[1]; *dstB++ = src[2]; *dstA++ = src[3]; src += 4; } } } else if (numberOfChannels == 2) { float* grayPlane = out.data(0, 0, 0, 0); float* alphaPlane = out.data(0, 0, 0, 1); for (int y = top; y < bottom; ++y) { const float* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstGray = grayPlane + planeStart; float* dstAlpha = alphaPlane + planeStart; for (int x = left; x < right; x++) { *dstGray++ = src[0]; *dstAlpha++ = src[1]; src += 2; } } } else if (numberOfChannels == 1) { float* grayPlane = out.data(0, 0, 0, 0); for (int y = top; y < bottom; ++y) { const float* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); const size_t planeStart = (static_cast(y) * imageWidth) + left; float* dstGray = grayPlane + planeStart; for (int x = left; x < right; x++) { *dstGray++ = src[0]; src++; } } } else { return InputFileParseStatus::InvalidArgument; } return InputFileParseStatus::Ok; } InputFileParseStatus CopyTileToGmicImage32Planar( const float* tileBuffer, size_t tileBufferStride, int left, int top, int right, int bottom, int channelIndex, gmic_library::gmic_image& image) { const int imageWidth = image.width(); float* plane = image.data(0, 0, 0, channelIndex); for (int y = top; y < bottom; ++y) { const float* src = tileBuffer + ((static_cast(y) - top) * tileBufferStride); float* dst = plane + (static_cast(y) * static_cast(imageWidth)) + left; for (int x = left; x < right; x++) { *dst++ = *src++; } } return InputFileParseStatus::Ok; } InputFileParseStatus ConvertGmic8bfInputToGmicImage32( QDataStream& dataStream, int32_t inTileWidth, int32_t inTileHeight, int32_t inNumberOfChannels, bool planar, gmic_library::gmic_image& image) { int32_t maxTileStride = planar ? inTileWidth : inTileWidth * inNumberOfChannels; size_t tileBufferSize = static_cast(maxTileStride) * inTileHeight * 4; std::unique_ptr tileBuffer(new (std::nothrow) char[tileBufferSize]); if (!tileBuffer) { return InputFileParseStatus::OutOfMemory; } int width = image.width(); int height = image.height(); if (planar) { for (int i = 0; i < inNumberOfChannels; i++) { for (int y = 0; y < height; y += inTileHeight) { int top = y; int bottom = std::min(y + inTileHeight, height); size_t rowCount = static_cast(bottom) - top; for (int x = 0; x < width; x += inTileWidth) { int left = x; int right = std::min(x + inTileWidth, width); size_t tileBufferStride = static_cast(right) - left; size_t bytesToRead = tileBufferStride * rowCount * 4; InputFileParseStatus status = FillTileBuffer(dataStream, bytesToRead, tileBuffer.get()); if (status != InputFileParseStatus::Ok) { return status; } status = CopyTileToGmicImage32Planar( reinterpret_cast(tileBuffer.get()), tileBufferStride, left, top, right, bottom, i, image); if (status != InputFileParseStatus::Ok) { return status; } } } } } else { for (int y = 0; y < height; y += inTileHeight) { int top = y; int bottom = std::min(y + inTileHeight, height); size_t rowCount = static_cast(bottom) - top; for (int x = 0; x < width; x += inTileWidth) { int left = x; int right = std::min(x + inTileWidth, width); size_t columnCount = static_cast(right) - left; size_t tileBufferStride = columnCount * inNumberOfChannels; size_t bytesToRead = tileBufferStride * rowCount * 4; InputFileParseStatus status = FillTileBuffer(dataStream, bytesToRead, tileBuffer.get()); if (status != InputFileParseStatus::Ok) { return status; } status = CopyTileToGmicImage32Interleaved( reinterpret_cast(tileBuffer.get()), tileBufferStride, left, top, right, bottom, image); if (status != InputFileParseStatus::Ok) { return status; } } } } // Convert the image from [0, 1] t0 [0, 255]. image *= 255; return InputFileParseStatus::Ok; } InputFileParseStatus ReadGmic8bfInput(const QString& path, gmic_library::gmic_image& image, bool isActiveLayer) { QFile file(path); if (!file.open(QIODevice::ReadOnly)) { return InputFileParseStatus::FileOpenError; } QDataStream dataStream(&file); char signature[4] = {}; dataStream.readRawData(signature, 4); if (strncmp(signature, "G8IM", 4) != 0) { return InputFileParseStatus::BadFileSignature; } char endian[4] = {}; dataStream.readRawData(endian, 4); #if Q_BYTE_ORDER == Q_BIG_ENDIAN if (strncmp(endian, "BEDN", 4) == 0) { dataStream.setByteOrder(QDataStream::BigEndian); } #elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN if (strncmp(endian, "LEDN", 4) == 0) { dataStream.setByteOrder(QDataStream::LittleEndian); } #else #error "Unknown endianness on this platform." #endif else { return InputFileParseStatus::PlatformEndianMismatch; } int32_t fileVersion = 0; dataStream >> fileVersion; if (fileVersion != 1) { return InputFileParseStatus::UnknownFileVersion; } int32_t width = 0; dataStream >> width; int32_t height = 0; dataStream >> height; int32_t numberOfChannels = 0; dataStream >> numberOfChannels; int32_t bitDepth = 0; dataStream >> bitDepth; int32_t flags = 0; dataStream >> flags; bool planar = false; planar = (flags & 1) != 0; int32_t inTileWidth = 0; dataStream >> inTileWidth; int32_t inTileHeight = 0; dataStream >> inTileHeight; if (isActiveLayer) { host_8bf::documentWidth = width; host_8bf::documentHeight = height; host_8bf::hostTileWidth = inTileWidth; host_8bf::hostTileHeight = inTileHeight; } image.assign(width, height, 1, numberOfChannels); InputFileParseStatus status = InputFileParseStatus::Ok; switch (bitDepth) { case 8: status = ConvertGmic8bfInputToGmicImage8(dataStream, inTileWidth, inTileHeight, numberOfChannels, planar, image); break; case 16: status = ConvertGmic8bfInputToGmicImage16(dataStream, inTileWidth, inTileHeight, numberOfChannels, planar, image); break; case 32: status = ConvertGmic8bfInputToGmicImage32(dataStream, inTileWidth, inTileHeight, numberOfChannels, planar, image); break; default: status = InputFileParseStatus::InvalidArgument; break; } return status; } InputFileParseStatus ReadColorProfile(const QString& path, cmsContext context, cmsHPROFILE* outProfile) { QFile file(path); if (!file.open(QIODevice::ReadOnly)) { return InputFileParseStatus::FileOpenError; } QByteArray data = file.readAll(); if (static_cast(data.size()) != file.size()) { return InputFileParseStatus::FileReadError; } *outProfile = cmsOpenProfileFromMemTHR(context, data.constData(), static_cast(data.size())); return *outProfile != nullptr ? InputFileParseStatus::Ok : InputFileParseStatus::IccProfileError; } InputFileParseStatus ParseInputFileIndex(const QString& indexFilePath) { QFile file(indexFilePath); if (!file.open(QIODevice::ReadOnly)) { return InputFileParseStatus::FileOpenError; } QDataStream dataStream(&file); char signature[4] = {}; dataStream.readRawData(signature, 4); if (strncmp(signature, "G8LI", 4) != 0) { return InputFileParseStatus::BadFileSignature; } char endian[4] = {}; dataStream.readRawData(endian, 4); #if Q_BYTE_ORDER == Q_BIG_ENDIAN if (strncmp(endian, "BEDN", 4) == 0) { dataStream.setByteOrder(QDataStream::BigEndian); } #elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN if (strncmp(endian, "LEDN", 4) == 0) { dataStream.setByteOrder(QDataStream::LittleEndian); } #else #error "Unknown endianness on this platform." #endif else { return InputFileParseStatus::PlatformEndianMismatch; } int32_t fileVersion = 0; dataStream >> fileVersion; if (fileVersion != 3) { return InputFileParseStatus::UnknownFileVersion; } int32_t layerCount = 0; dataStream >> layerCount; dataStream >> host_8bf::activeLayerIndex; dataStream >> host_8bf::bitsPerChannel; uint8_t grayScale; dataStream >> grayScale; host_8bf::grayScale = grayScale != 0; uint8_t haveIccProfiles; dataStream >> haveIccProfiles; // Skip the padding byte. dataStream.skipRawData(1); if (haveIccProfiles != 0) { QString imageColorProfile = ReadUTF8String(dataStream); QString displayColorProfile = ReadUTF8String(dataStream); host_8bf::lcmsContext = cmsCreateContext(nullptr, nullptr); if (host_8bf::lcmsContext == nullptr) { return InputFileParseStatus::IccProfileError; } InputFileParseStatus status = ReadColorProfile(imageColorProfile, host_8bf::lcmsContext, &host_8bf::imageProfile); if (status != InputFileParseStatus::Ok) { return status; } status = ReadColorProfile(displayColorProfile, host_8bf::lcmsContext, &host_8bf::displayProfile); if (status != InputFileParseStatus::Ok) { return status; } } host_8bf::layers.reserve(layerCount); for (int32_t i = 0; i < layerCount; i++) { int32_t layerWidth = 0; dataStream >> layerWidth; int32_t layerHeight = 0; dataStream >> layerHeight; int32_t layerVisible = 0; dataStream >> layerVisible; QString layerName = ReadUTF8String(dataStream); QString filePath = ReadUTF8String(dataStream); gmic_library::gmic_image image; InputFileParseStatus status = ReadGmic8bfInput(filePath, image, i == host_8bf::activeLayerIndex); if (status != InputFileParseStatus::Ok) { return status; } Gmic8bfLayer layer{}; layer.width = layerWidth; layer.height = layerHeight; layer.visible = layerVisible != 0; layer.name = layerName; layer.imageData = image; host_8bf::layers.push_back(layer); } if (layerCount > 1) { // The 8bf plug-in sends layers in bottom to top order, whereas the // G'MIC-Qt plug-in for GIMP sends layers in top to bottom order. // So we reverse the layer list to match the behavior of the G'MIC-Qt // plug-in for GIMP. host_8bf::activeLayerIndex = layerCount - (1 + host_8bf::activeLayerIndex); // Adapted from https://stackoverflow.com/a/20652805 for(int k = 0, s = host_8bf::layers.size(), max = (s / 2); k < max; k++) { host_8bf::layers.swapItemsAt(k, s - (1 + k)); } } return InputFileParseStatus::Ok; } QVector FilterLayersForInputMode(GmicQt::InputMode mode) { if (host_8bf::layers.size() == 1 || mode == GmicQt::InputMode::All) { return host_8bf::layers; } else { QVector filteredLayers; if (mode == GmicQt::InputMode::Active) { filteredLayers.push_back(host_8bf::layers[host_8bf::activeLayerIndex]); } else if (mode == GmicQt::InputMode::ActiveAndAbove) { const QVector& layers = host_8bf::layers; // This case is the opposite of the GIMP plug-in because the layer order has // been reversed to match the top to bottom order that the GIMP plug-in uses. if (host_8bf::activeLayerIndex > 0) { filteredLayers.push_back(layers[host_8bf::activeLayerIndex - 1]); } filteredLayers.push_back(layers[host_8bf::activeLayerIndex]); } else if (mode == GmicQt::InputMode::ActiveAndBelow) { const QVector& layers = host_8bf::layers; // This case is the opposite of the GIMP plug-in because the layer order has // been reversed to match the top to bottom order that the GIMP plug-in uses. filteredLayers.push_back(layers[host_8bf::activeLayerIndex]); if (host_8bf::activeLayerIndex < (layers.size() - 1)) { filteredLayers.push_back(layers[host_8bf::activeLayerIndex + 1]); } } else if (mode == GmicQt::InputMode::AllVisible) { const QVector& layers = host_8bf::layers; for (int i = 0; i < layers.size(); i++) { const Gmic8bfLayer& layer = layers[i]; if (layer.visible) { filteredLayers.push_back(layer); } } } else if (mode == GmicQt::InputMode::AllInvisible) { const QVector& layers = host_8bf::layers; for (int i = 0; i < layers.size(); i++) { const Gmic8bfLayer& layer = layers[i]; if (!layer.visible) { filteredLayers.push_back(layer); } } } return filteredLayers; } } // The following method was copied from ImageConverter.cpp. inline unsigned char float2uchar_bounded(const float& in) { return (in < 0.0f) ? 0 : ((in > 255.0f) ? 255 : static_cast(in)); } inline unsigned short float2ushort_bounded(const float& in) { // Scale the value from [0, 255] to [0, 65535]. const float fullRangeValue = in * 257.0f; return (fullRangeValue < 0.0f) ? 0 : ((fullRangeValue > 65535.0f) ? 65535 : static_cast(fullRangeValue)); } void WriteGmic8bfImageHeader( QDataStream& stream, int width, int height, int numberOfChannels, int bitsPerChannel, bool planar, int tileWidth, int tileHeight) { const int fileVersion = 1; const int flags = planar ? 1 : 0; stream.writeRawData("G8IM", 4); #if Q_BYTE_ORDER == Q_BIG_ENDIAN stream.writeRawData("BEDN", 4); stream.setByteOrder(QDataStream::BigEndian); #elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN stream.writeRawData("LEDN", 4); stream.setByteOrder(QDataStream::LittleEndian); #else #error "Unknown endianness on this platform." #endif stream << fileVersion; stream << width; stream << height; stream << numberOfChannels; stream << bitsPerChannel; stream << flags; stream << tileWidth; stream << tileHeight; } void WriteGmicOutputTile8Interleaved( QDataStream& dataStream, const gmic_library::gmic_image& in, unsigned char* rowBuffer, int rowBufferLengthInBytes, int left, int top, int right, int bottom) { // The following code has been adapted from ImageConverter.cpp. if (in.spectrum() == 3) { const float* rPlane = in.data(0, 0, 0, 0); const float* gPlane = in.data(0, 0, 0, 1); const float* bPlane = in.data(0, 0, 0, 2); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* srcR = rPlane + planeStart; const float* srcG = gPlane + planeStart; const float* srcB = bPlane + planeStart; unsigned char* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2uchar_bounded(*srcR++); dst[1] = float2uchar_bounded(*srcG++); dst[2] = float2uchar_bounded(*srcB++); dst += 3; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else if (in.spectrum() == 4) { const float* rPlane = in.data(0, 0, 0, 0); const float* gPlane = in.data(0, 0, 0, 1); const float* bPlane = in.data(0, 0, 0, 2); const float* aPlane = in.data(0, 0, 0, 3); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* srcR = rPlane + planeStart; const float* srcG = gPlane + planeStart; const float* srcB = bPlane + planeStart; const float* srcA = aPlane + planeStart; unsigned char* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2uchar_bounded(*srcR++); dst[1] = float2uchar_bounded(*srcG++); dst[2] = float2uchar_bounded(*srcB++); dst[3] = float2uchar_bounded(*srcA++); dst += 4; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else if (in.spectrum() == 2) { // // Gray + Alpha // const float* grayPlane = in.data(0, 0, 0, 0); const float* alphaPlane = in.data(0, 0, 0, 1); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = grayPlane + planeStart; const float* srcA = alphaPlane + planeStart; unsigned char* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2uchar_bounded(*src++); dst[1] = float2uchar_bounded(*srcA++); dst += 2; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else { // // 8-bits Gray levels // const float* grayPlane = in.data(0, 0, 0, 0); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = grayPlane + planeStart; unsigned char* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2uchar_bounded(*src++); dst++; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } } void WriteGmicOutputTile8Planar( QDataStream& dataStream, const gmic_library::gmic_image& in, unsigned char* rowBuffer, int rowBufferLengthInBytes, int left, int top, int right, int bottom, int plane) { const float* srcPlane = in.data(0, 0, 0, plane); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = srcPlane + planeStart; unsigned char* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2uchar_bounded(*src++); dst++; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } void WriteGmicOutput8( const QString& outputFilePath, const gmic_library::gmic_image& in, bool planar, int32_t tileWidth, int32_t tileHeight) { QFile file(outputFilePath); file.open(QFile::WriteOnly); QDataStream dataStream(&file); dataStream.setByteOrder(QDataStream::LittleEndian); const int width = in.width(); const int height = in.height(); const int numberOfChannels = in.spectrum(); WriteGmic8bfImageHeader(dataStream, width, height, numberOfChannels, 8, planar, tileWidth, tileHeight); if (planar) { std::vector rowBuffer(width); for (int i = 0; i < numberOfChannels; ++i) { for (int y = 0; y < height; y += tileHeight) { int top = y; int bottom = std::min(y + tileHeight, height); for (int x = 0; x < width; x += tileWidth) { int left = x; int right = std::min(x + tileWidth, width); int rowBufferLengthInBytes = right - left; WriteGmicOutputTile8Planar( dataStream, in, rowBuffer.data(), rowBufferLengthInBytes, left, top, right, bottom, i); } } } } else { std::vector rowBuffer(static_cast(width) * numberOfChannels); for (int y = 0; y < height; y += tileHeight) { int top = y; int bottom = std::min(y + tileHeight, height); for (int x = 0; x < width; x += tileWidth) { int left = x; int right = std::min(x + tileWidth, width); int rowBufferLengthInBytes = (right - left) * numberOfChannels; WriteGmicOutputTile8Interleaved( dataStream, in, rowBuffer.data(), rowBufferLengthInBytes, left, top, right, bottom); } } } } void WriteGmicOutputTile16Interleaved( QDataStream& dataStream, const gmic_library::gmic_image& in, unsigned short* rowBuffer, int rowBufferLengthInBytes, int left, int top, int right, int bottom) { // The following code has been adapted from ImageConverter.cpp. if (in.spectrum() == 3) { const float* rPlane = in.data(0, 0, 0, 0); const float* gPlane = in.data(0, 0, 0, 1); const float* bPlane = in.data(0, 0, 0, 2); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* srcR = rPlane + planeStart; const float* srcG = gPlane + planeStart; const float* srcB = bPlane + planeStart; unsigned short* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2ushort_bounded(*srcR++); dst[1] = float2ushort_bounded(*srcG++); dst[2] = float2ushort_bounded(*srcB++); dst += 3; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else if (in.spectrum() == 4) { const float* rPlane = in.data(0, 0, 0, 0); const float* gPlane = in.data(0, 0, 0, 1); const float* bPlane = in.data(0, 0, 0, 2); const float* aPlane = in.data(0, 0, 0, 3); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* srcR = rPlane + planeStart; const float* srcG = gPlane + planeStart; const float* srcB = bPlane + planeStart; const float* srcA = aPlane + planeStart; unsigned short* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2ushort_bounded(*srcR++); dst[1] = float2ushort_bounded(*srcG++); dst[2] = float2ushort_bounded(*srcB++); dst[3] = float2ushort_bounded(*srcA++); dst += 4; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else if (in.spectrum() == 2) { // // Gray + Alpha // const float* grayPlane = in.data(0, 0, 0, 0); const float* alphaPlane = in.data(0, 0, 0, 1); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = grayPlane + planeStart; const float* srcA = alphaPlane + planeStart; unsigned short* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2ushort_bounded(*src++); dst[1] = float2ushort_bounded(*srcA++); dst += 2; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else { // // 16-bits Gray levels // const float* grayPlane = in.data(0, 0, 0, 0); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = grayPlane + planeStart; unsigned short* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2ushort_bounded(*src++); dst++; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } } void WriteGmicOutputTile16Planar( QDataStream& dataStream, const gmic_library::gmic_image& in, unsigned short* rowBuffer, int rowBufferLengthInBytes, int left, int top, int right, int bottom, int plane) { const float* srcPlane = in.data(0, 0, 0, plane); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = srcPlane + planeStart; unsigned short* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = float2ushort_bounded(*src++); dst++; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } void WriteGmicOutput16( const QString& outputFilePath, const gmic_library::gmic_image& in, bool planar, int32_t tileWidth, int32_t tileHeight) { QFile file(outputFilePath); file.open(QFile::WriteOnly); QDataStream dataStream(&file); dataStream.setByteOrder(QDataStream::LittleEndian); const int width = in.width(); const int height = in.height(); const int numberOfChannels = in.spectrum(); WriteGmic8bfImageHeader(dataStream, width, height, numberOfChannels, 16, planar, tileWidth, tileHeight); if (planar) { std::vector rowBuffer(width); for (int i = 0; i < numberOfChannels; ++i) { for (int y = 0; y < height; y += tileHeight) { int top = y; int bottom = std::min(y + tileHeight, height); for (int x = 0; x < width; x += tileWidth) { int left = x; int right = std::min(x + tileWidth, width); int columnCount = right - left; int rowBufferLengthInBytes = columnCount * 2; WriteGmicOutputTile16Planar( dataStream, in, rowBuffer.data(), rowBufferLengthInBytes, left, top, right, bottom, i); } } } } else { std::vector rowBuffer(static_cast(width) * numberOfChannels); for (int y = 0; y < height; y += tileHeight) { int top = y; int bottom = std::min(y + tileHeight, height); for (int x = 0; x < width; x += tileWidth) { int left = x; int right = std::min(x + tileWidth, width); int rowBufferLengthInBytes = ((right - left) * numberOfChannels) * 2; WriteGmicOutputTile16Interleaved( dataStream, in, rowBuffer.data(), rowBufferLengthInBytes, left, top, right, bottom); } } } } void WriteGmicOutputTile32Interleaved( QDataStream& dataStream, const gmic_library::gmic_image& in, float* rowBuffer, int rowBufferLengthInBytes, int left, int top, int right, int bottom) { // The following code has been adapted from ImageConverter.cpp. if (in.spectrum() == 3) { const float* rPlane = in.data(0, 0, 0, 0); const float* gPlane = in.data(0, 0, 0, 1); const float* bPlane = in.data(0, 0, 0, 2); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* srcR = rPlane + planeStart; const float* srcG = gPlane + planeStart; const float* srcB = bPlane + planeStart; float* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = *srcR++; dst[1] = *srcG++; dst[2] = *srcB++; dst += 3; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else if (in.spectrum() == 4) { const float* rPlane = in.data(0, 0, 0, 0); const float* gPlane = in.data(0, 0, 0, 1); const float* bPlane = in.data(0, 0, 0, 2); const float* aPlane = in.data(0, 0, 0, 3); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* srcR = rPlane + planeStart; const float* srcG = gPlane + planeStart; const float* srcB = bPlane + planeStart; const float* srcA = aPlane + planeStart; float* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = *srcR++; dst[1] = *srcG++; dst[2] = *srcB++; dst[3] = *srcA++; dst += 4; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else if (in.spectrum() == 2) { // // Gray + Alpha // const float* grayPlane = in.data(0, 0, 0, 0); const float* alphaPlane = in.data(0, 0, 0, 1); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = grayPlane + planeStart; const float* srcA = alphaPlane + planeStart; float* dst = rowBuffer; for (int x = left; x < right; ++x) { dst[0] = *src++; dst[1] = *srcA++; dst += 2; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } else { // // 16-bits Gray levels // const float* grayPlane = in.data(0, 0, 0, 0); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = grayPlane + planeStart; float* dst = rowBuffer; for (int x = left; x < right; ++x) { *dst++ = *src++; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } } void WriteGmicOutputTile32Planar( QDataStream& dataStream, const gmic_library::gmic_image& in, float* rowBuffer, int rowBufferLengthInBytes, int left, int top, int right, int bottom, int plane) { const float* srcPlane = in.data(0, 0, 0, plane); for (int y = top; y < bottom; ++y) { const size_t planeStart = (static_cast(y) * in.width()) + left; const float* src = srcPlane + planeStart; float* dst = rowBuffer; for (int x = left; x < right; ++x) { *dst++ = *src++; } dataStream.writeRawData(reinterpret_cast(rowBuffer), rowBufferLengthInBytes); } } void WriteGmicOutput32( const QString& outputFilePath, gmic_library::gmic_image& in, bool planar, int32_t tileWidth, int32_t tileHeight) { // Convert the image from [0, 255] to [0, 1]. in /= 255; QFile file(outputFilePath); file.open(QFile::WriteOnly); QDataStream dataStream(&file); dataStream.setByteOrder(QDataStream::LittleEndian); const int width = in.width(); const int height = in.height(); const int numberOfChannels = in.spectrum(); WriteGmic8bfImageHeader(dataStream, width, height, numberOfChannels, 32, planar, tileWidth, tileHeight); if (planar) { std::vector rowBuffer(width); for (int i = 0; i < numberOfChannels; ++i) { for (int y = 0; y < height; y += tileHeight) { int top = y; int bottom = std::min(y + tileHeight, height); for (int x = 0; x < width; x += tileWidth) { int left = x; int right = std::min(x + tileWidth, width); int rowBufferLengthInBytes = (right - left) * 4; WriteGmicOutputTile32Planar( dataStream, in, rowBuffer.data(), rowBufferLengthInBytes, left, top, right, bottom, i); } } } } else { std::vector rowBuffer(static_cast(width) * numberOfChannels); for (int y = 0; y < height; y += tileHeight) { int top = y; int bottom = std::min(y + tileHeight, height); for (int x = 0; x < width; x += tileWidth) { int left = x; int right = std::min(x + tileWidth, width); int rowBufferLengthInBytes = ((right - left) * numberOfChannels) * 4; WriteGmicOutputTile32Interleaved( dataStream, in, rowBuffer.data(), rowBufferLengthInBytes, left, top, right, bottom); } } } } void EmptyOutputFolder() { QDir dir(host_8bf::outputDir); dir.setFilter(QDir::NoDotAndDotDot | QDir::Files); foreach(QString dirFile, dir.entryList()) { dir.remove(dirFile); } } GmicQt::InputMode ReadGmic8bfInputMode(QDataStream& dataStream) { GmicQt::InputMode mode = GmicQt::InputMode::Active; QString str = ReadUTF8String(dataStream); if (str == "All Layers") { mode = GmicQt::InputMode::All; } else if (str == "Active Layer and Below") { mode = GmicQt::InputMode::ActiveAndBelow; } else if (str == "Active Layer and Above") { mode = GmicQt::InputMode::ActiveAndAbove; } else if (str == "All Visible Layers") { mode = GmicQt::InputMode::AllVisible; } else if (str == "All Hidden Layers") { mode = GmicQt::InputMode::AllInvisible; } return mode; } bool ReadGmic8bfFilterParameters(const QString& path, GmicQt::RunParameters& parameters) { QFile file(path); if (file.open(QFile::ReadOnly)) { QDataStream dataStream(&file); char signature[4] = {}; dataStream.readRawData(signature, 4); if (strncmp(signature, "G8FP", 4) != 0) { return false; } char endian[4] = {}; dataStream.readRawData(endian, 4); #if Q_BYTE_ORDER == Q_BIG_ENDIAN if (strncmp(endian, "BEDN", 4) == 0) { dataStream.setByteOrder(QDataStream::BigEndian); } #elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN if (strncmp(endian, "LEDN", 4) == 0) { dataStream.setByteOrder(QDataStream::LittleEndian); } #else #error "Unknown endianness on this platform." #endif else { return false; } int32_t fileVersion = 0; dataStream >> fileVersion; if (fileVersion != 1) { return false; } parameters.command = ReadUTF8String(dataStream).toStdString(); parameters.filterPath = ReadUTF8String(dataStream).toStdString(); parameters.inputMode = ReadGmic8bfInputMode(dataStream); } return true; } GmicQt::RunParameters GetFilterRunParameters(const QString& path) { GmicQt::RunParameters parameters = GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution); if (!path.isEmpty()) { ReadGmic8bfFilterParameters(path, parameters); } return parameters; } void WriteGmic8bfInputMode(QDataStream& dataStream, GmicQt::InputMode inputMode) { QString str; switch (inputMode) { case GmicQt::InputMode::All: str = "All Layers"; break; case GmicQt::InputMode::ActiveAndBelow: str = "Active Layer and Below"; break; case GmicQt::InputMode::ActiveAndAbove: str = "Active Layer and Above"; break; case GmicQt::InputMode::AllVisible: str = "All Visible Layers"; break; case GmicQt::InputMode::AllInvisible: str = "All Hidden Layers"; break; case GmicQt::InputMode::Active: default: str = "Active Layer"; break; } QByteArray utf8Bytes = str.toUtf8(); dataStream << utf8Bytes.size(); dataStream.writeRawData(utf8Bytes.constData(), utf8Bytes.size()); } void WriteUtf8String(QDataStream& dataStream, const std::string& str) { if (str.size() <= INT_MAX) { const int stringLength = static_cast(str.size()); dataStream << stringLength; dataStream.writeRawData(str.c_str(), stringLength); } } void WriteGmic8bfFilterParameters(const QString& path, const GmicQt::RunParameters& parameters) { if (path.isEmpty()) { return; } QFile file(path); if (file.open(QFile::WriteOnly)) { QDataStream dataStream(&file); const int32_t fileVersion = 1; dataStream.writeRawData("G8FP", 4); #if Q_BYTE_ORDER == Q_BIG_ENDIAN stream.writeRawData("BEDN", 4); dataStream.setByteOrder(QDataStream::BigEndian); #elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN dataStream.writeRawData("LEDN", 4); dataStream.setByteOrder(QDataStream::LittleEndian); #else #error "Unknown endianness on this platform." #endif dataStream << fileVersion; WriteUtf8String(dataStream, parameters.command); WriteUtf8String(dataStream, parameters.filterPath); WriteGmic8bfInputMode(dataStream, parameters.inputMode); WriteUtf8String(dataStream, parameters.filterName()); } } QWidget* visibleMainWindow() { for (QWidget* w : QApplication::topLevelWidgets()) { if ((dynamic_cast(w) != nullptr) && (w->isVisible())) { return w; } } return nullptr; } #ifdef Q_OS_WIN void FetchDisplayProfileFromWindowHandle(HWND hwnd) { HMONITOR hMonitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST); MONITORINFOEXW monitorInfo{}; monitorInfo.cbSize = sizeof(monitorInfo); if (GetMonitorInfoW(hMonitor, &monitorInfo)) { HDC hdc = CreateDCW(monitorInfo.szDevice, monitorInfo.szDevice, nullptr, nullptr); if (hdc != nullptr) { DWORD size = 0; GetICMProfileA(hdc, &size, nullptr); if (size > 0) { CHAR* chars = new (std::nothrow) CHAR[size]; if (chars != nullptr && GetICMProfileA(hdc, &size, chars)) { cmsHPROFILE profile = cmsOpenProfileFromFileTHR(host_8bf::lcmsContext, chars, "rb"); if (profile != nullptr) { if (host_8bf::displayProfile != nullptr) { cmsCloseProfile(host_8bf::displayProfile); } host_8bf::displayProfile = profile; } } delete[] chars; } DeleteDC(hdc); } } } #endif void FetchDisplayProfileFromQtWidget() { #ifdef Q_OS_WIN QWidget* mainWindow = visibleMainWindow(); if (mainWindow != nullptr) { WId mainWindowHandle = mainWindow->winId(); if (mainWindowHandle != static_cast(0)) { FetchDisplayProfileFromWindowHandle(reinterpret_cast(mainWindowHandle)); } } #endif } } namespace GmicQtHost { void getLayersExtent(int * width, int * height, GmicQt::InputMode mode) { if (mode == GmicQt::InputMode::NoInput) { *width = 0; *height = 0; return; } if (host_8bf::layers.size() == 1) { const Gmic8bfLayer& layer = host_8bf::layers[0]; *width = layer.width; *height = layer.height; } else { QVector filteredLayers = FilterLayersForInputMode(mode); for (int i = 0; i < filteredLayers.size(); i++) { Gmic8bfLayer& layer = filteredLayers[i]; *width = std::max(*width, layer.width); *height = std::max(*height, layer.height); } } } void getCroppedImages(gmic_list & images, gmic_list & imageNames, double x, double y, double width, double height, GmicQt::InputMode mode) { if (mode == GmicQt::InputMode::NoInput) { images.assign(); imageNames.assign(); return; } const bool entireImage = x < 0 && y < 0 && width < 0 && height < 0; if (entireImage) { x = 0.0; y = 0.0; width = 1.0; height = 1.0; } QVector filteredLayers = FilterLayersForInputMode(mode); const int layerCount = filteredLayers.size(); images.assign(layerCount); imageNames.assign(layerCount); for (int i = 0; i < layerCount; ++i) { QByteArray layerNameBytes = filteredLayers[i].name.toUtf8(); gmic_image::string(layerNameBytes.constData()).move_to(imageNames[i]); } int maxWidth = 0; int maxHeight = 0; for (int i = 0; i < filteredLayers.size(); i++) { Gmic8bfLayer& layer = filteredLayers[i]; maxWidth = std::max(maxWidth, layer.width); maxHeight = std::max(maxHeight, layer.height); } const int ix = entireImage ? 0 : static_cast(std::floor(x * maxWidth)); const int iy = entireImage ? 0 : static_cast(std::floor(y * maxHeight)); const int iw = entireImage ? maxWidth : std::min(maxWidth - ix, static_cast(1 + std::ceil(width * maxWidth))); const int ih = entireImage ? maxHeight : std::min(maxHeight - iy, static_cast(1 + std::ceil(height * maxHeight))); for (int i = 0; i < layerCount; i++) { if (entireImage) { images[i].assign(filteredLayers.at(i).imageData); } else { images[i].assign(filteredLayers.at(i).imageData.get_crop(ix, iy, ix + iw, iy + ih)); } } } void outputImages(gmic_list & images, const gmic_list & imageNames, GmicQt::OutputMode /* mode */) { unused(imageNames); if (images.size() > 0) { // Remove any files that may be present from the last time the user clicked Apply. EmptyOutputFolder(); QString timestamp = QDateTime::currentDateTime().toString("yyyyMMdd-hhmmss"); bool haveMultipleImages = images.size() > 1; for (size_t i = 0; i < images.size(); ++i) { QString outputPath; if (haveMultipleImages) { outputPath = QString("%1/%2-%3.g8i").arg(host_8bf::outputDir).arg(timestamp).arg(i); } else { outputPath = QString("%1/%2.g8i").arg(host_8bf::outputDir).arg(timestamp); } gmic_library::gmic_image& in = images[i]; const int width = in.width(); const int height = in.height(); bool planar = false; int tileWidth = width; int tileHeight = height; if (host_8bf::grayScale && (in.spectrum() == 3 || in.spectrum() == 4)) { // Convert the RGB image to grayscale. GmicQt::calibrateImage(in, in.spectrum() == 4 ? 2 : 1, false); } if (i == 0) { // Replace the active layer image with the first output image. // This allows users to "layer" multiple effects using the G'MIC-Qt Apply button. // // Note that only the most recently applied effect will be used by the "Last Filter" // or "Repeat Filter" commands. Gmic8bfLayer& active = host_8bf::layers[host_8bf::activeLayerIndex]; active.width = width; active.height = height; active.imageData.assign(in); // If the G'MIC output is a single image that matches the host document size it will be // copied to the active layer when G'MIC exits. if (images.size() == 1 && width == host_8bf::documentWidth && height == host_8bf::documentHeight) { // The output will be written as a tiled planar image because that is the most // efficient format for the host to read. planar = true; tileWidth = host_8bf::hostTileWidth; tileHeight = host_8bf::hostTileHeight; } } switch (host_8bf::bitsPerChannel) { case 8: WriteGmicOutput8(outputPath, in, planar, tileWidth, tileHeight); break; case 16: WriteGmicOutput16(outputPath, in, planar, tileWidth, tileHeight); break; case 32: WriteGmicOutput32(outputPath, in, planar, tileWidth, tileHeight); break; } } } } void applyColorProfile(gmic_library::gmic_image & image) { if (!image || image.spectrum() > 4) { return; } const bool performColorCorrection = host_8bf::lcmsContext != nullptr && host_8bf::imageProfile != nullptr && host_8bf::displayProfile != nullptr; if (host_8bf::grayScale) { if (image.spectrum() == 3 || image.spectrum() == 4) { // Convert the RGB image to gray scale. GmicQt::calibrateImage(image, image.spectrum() == 4 ? 2 : 1, false); } } else { if (performColorCorrection && (image.spectrum() == 1 || image.spectrum() == 2)) { // Convert the gray scale image to RGB. // The color profile of a RGB image may not support gray scale image data. GmicQt::calibrateImage(image, image.spectrum() == 2 ? 4 : 3, false); } } if (!performColorCorrection) { return; } if (!host_8bf::fetchedDisplayProfileFromQtWidget) { host_8bf::fetchedDisplayProfileFromQtWidget = true; FetchDisplayProfileFromQtWidget(); } gmic_library::gmic_image corrected; image.get_permute_axes("cxyz").move_to(corrected) /= 255; #ifndef TYPE_GRAYA_FLT #define TYPE_GRAYA_FLT FLOAT_SH(1)|COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(4) #endif cmsUInt32Number format = 0; cmsUInt32Number transformFlags = cmsFLAGS_BLACKPOINTCOMPENSATION; switch (image.spectrum()) { case 1: format = TYPE_GRAY_FLT; break; case 2: format = TYPE_GRAYA_FLT; transformFlags |= cmsFLAGS_COPY_ALPHA; break; case 3: format = TYPE_RGB_FLT; break; case 4: format = TYPE_RGBA_FLT; transformFlags |= cmsFLAGS_COPY_ALPHA; break; } if (format != 0) { if (format != host_8bf::transformFormat) { host_8bf::transformFormat = format; if (host_8bf::transform != nullptr) { cmsDeleteTransform(host_8bf::transform); } host_8bf::transform = cmsCreateTransformTHR( host_8bf::lcmsContext, host_8bf::imageProfile, format, host_8bf::displayProfile, format, INTENT_RELATIVE_COLORIMETRIC, transformFlags); } if (host_8bf::transform != nullptr) { const cmsUInt64Number bytesPerLine64 = static_cast(image.width()) * image.spectrum() * sizeof(gmic_pixel_type); if (bytesPerLine64 <= std::numeric_limits::max()) { const cmsUInt64Number bytesPerLine = static_cast(bytesPerLine64); cmsDoTransformLineStride( host_8bf::transform, corrected.data(), corrected.data(), image.width(), image.height(), bytesPerLine, bytesPerLine, 0, 0); } } } (corrected.permute_axes("yzcx") *= 255).cut(0, 255).move_to(image); } void showMessage(const char * message) { unused(message); } } // GmicQtHost #if defined(_MSC_VER) && defined(_DEBUG) #include // Adapted from https://stackoverflow.com/a/20387632 bool launchDebugger() { // Get System directory, typically c:\windows\system32 std::wstring systemDir(MAX_PATH + 1, '\0'); UINT nChars = GetSystemDirectoryW(&systemDir[0], static_cast(systemDir.length())); if (nChars == 0) return false; // failed to get system directory systemDir.resize(nChars); // Get process ID and create the command line DWORD pid = GetCurrentProcessId(); std::wostringstream s; s << systemDir << L"\\vsjitdebugger.exe -p " << pid; std::wstring cmdLine = s.str(); // Start debugger process STARTUPINFOW si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); PROCESS_INFORMATION pi; ZeroMemory(&pi, sizeof(pi)); if (!CreateProcessW(NULL, &cmdLine[0], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return false; // Close debugger process handles to eliminate resource leak CloseHandle(pi.hThread); CloseHandle(pi.hProcess); // Wait for the debugger to attach while (!IsDebuggerPresent()) Sleep(100); // Stop execution so the debugger can take over DebugBreak(); return true; } #endif // defined(_MSC_VER) && defined(_DEBUG) void DestroyLCMSData() { if (host_8bf::imageProfile != nullptr) { cmsCloseProfile(host_8bf::imageProfile); } if (host_8bf::displayProfile != nullptr) { cmsCloseProfile(host_8bf::displayProfile); } if (host_8bf::transform != nullptr) { cmsDeleteTransform(host_8bf::transform); } if (host_8bf::lcmsContext != nullptr) { cmsDeleteContext(host_8bf::lcmsContext); } } int main(int argc, char *argv[]) { #if defined(_MSC_VER) && defined(_DEBUG) launchDebugger(); #endif QString indexFilePath; QString parametersFilePath; bool useLastParameters = false; if (argc >= 3) { indexFilePath = argv[1]; host_8bf::outputDir = argv[2]; if (argc >= 4) { parametersFilePath = argv[3]; if (argc == 5) { useLastParameters = strcmp(argv[4], "reapply") == 0; } } } else { return 1; } if (indexFilePath.isEmpty()) { return 2; } if (host_8bf::outputDir.isEmpty()) { return 3; } try { host_8bf::lcmsContext = nullptr; host_8bf::imageProfile = nullptr; host_8bf::displayProfile = nullptr; host_8bf::fetchedDisplayProfileFromQtWidget = false; host_8bf::transform = nullptr; host_8bf::transformFormat = 0; InputFileParseStatus status = ParseInputFileIndex(indexFilePath); // The return value 5 is skipped because it is already being used to // indicate that the user canceled the dialog. if (status != InputFileParseStatus::Ok) { DestroyLCMSData(); switch (status) { case InputFileParseStatus::InvalidArgument: return 3; case InputFileParseStatus::FileOpenError: return 6; case InputFileParseStatus::BadFileSignature: return 7; case InputFileParseStatus::UnknownFileVersion: return 8; case InputFileParseStatus::OutOfMemory: return 9; case InputFileParseStatus::EndOfFile: return 10; case InputFileParseStatus::PlatformEndianMismatch: return 11; case InputFileParseStatus::FileReadError: return 12; case InputFileParseStatus::IccProfileError: return 13; default: return 4; // Unknown error } } } catch (const std::bad_alloc&) { DestroyLCMSData(); return 9; } int exitCode = 0; std::list disabledInputModes; disabledInputModes.push_back(GmicQt::InputMode::NoInput); // disabledInputModes.push_back(GmicQt::InputMode::Active); // disabledInputModes.push_back(GmicQt::InputMode::All); // disabledInputModes.push_back(GmicQt::InputMode::ActiveAndBelow); // disabledInputModes.push_back(GmicQt::InputMode::ActiveAndAbove); // disabledInputModes.push_back(GmicQt::InputMode::AllVisible); // disabledInputModes.push_back(GmicQt::InputMode::AllInvisible); std::list disabledOutputModes; // disabledOutputModes.push_back(GmicQt::OutputMode::InPlace); disabledOutputModes.push_back(GmicQt::OutputMode::NewImage); disabledOutputModes.push_back(GmicQt::OutputMode::NewLayers); disabledOutputModes.push_back(GmicQt::OutputMode::NewActiveLayers); bool dialogAccepted = true; GmicQt::RunParameters parameters = GetFilterRunParameters(parametersFilePath); if (useLastParameters) { exitCode = GmicQt::run(GmicQt::UserInterfaceMode::ProgressDialog, parameters, disabledInputModes, disabledOutputModes, &dialogAccepted); if (!dialogAccepted) { exitCode = 5; } } else { exitCode = GmicQt::run(GmicQt::UserInterfaceMode::Full, parameters, disabledInputModes, disabledOutputModes, &dialogAccepted); if (dialogAccepted) { GmicQt::RunParameters currentParameters = GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution); WriteGmic8bfFilterParameters(parametersFilePath, currentParameters); } else { exitCode = 5; } } DestroyLCMSData(); return exitCode; } ================================================ FILE: src/Host/Gimp/host_gimp.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file host_gimp.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include #include #include #include #include #include #include #include #include #ifdef _IS_WINDOWS_ #include #endif #include "Common.h" #include "GmicQt.h" #include "Host/GmicQtHost.h" #include "ImageTools.h" #include "gmic.h" /* * Part of this code is much inspired by the original source code * of the GTK version of the gmic plug-in for GIMP by David Tschumperl\'e. */ #define _gimp_image_get_item_position gimp_image_get_item_position #if !GIMP_CHECK_VERSION(2, 7, 15) #define _gimp_item_get_visible gimp_drawable_get_visible #else #define _gimp_item_get_visible gimp_item_get_visible #endif #if GIMP_CHECK_VERSION(2, 99, 6) #define _gimp_image_get_width gimp_image_get_width #define _gimp_image_get_height gimp_image_get_height #define _gimp_image_get_base_type gimp_image_get_base_type #define _gimp_drawable_get_width gimp_drawable_get_width #define _gimp_drawable_get_height gimp_drawable_get_height #define _gimp_drawable_get_offsets gimp_drawable_get_offsets #else #define _gimp_image_get_width gimp_image_width #define _gimp_image_get_height gimp_image_height #define _gimp_image_get_base_type gimp_image_base_type #define _gimp_drawable_get_width gimp_drawable_width #define _gimp_drawable_get_height gimp_drawable_height #define _gimp_drawable_get_offsets gimp_drawable_offsets #endif #if !GIMP_CHECK_VERSION(2, 99, 0) #define _GimpImagePtr int #define _GimpLayerPtr int #define _GimpItemPtr int #define _GIMP_ITEM(item) (item) #define _GIMP_DRAWABLE(drawable) (drawable) #define _GIMP_LAYER(layer) (layer) #define _GIMP_NULL_LAYER -1 #define _GIMP_LAYER_IS_NOT_NULL(layer) ((layer) >= 0) #define _gimp_top_layer 0 #else #define _GimpImagePtr GimpImage * #define _GimpLayerPtr GimpLayer * #define _GimpItemPtr GimpItem * #define _GIMP_ITEM(item) GIMP_ITEM(item) #define _GIMP_DRAWABLE(drawable) GIMP_DRAWABLE(drawable) #define _GIMP_LAYER(layer) GIMP_LAYER(layer) #define _GIMP_NULL_LAYER NULL #define _GIMP_LAYER_IS_NOT_NULL(layer) ((layer) != NULL) #define _gimp_top_layer gimp_layer_get_by_id(0) #define PLUG_IN_PROC "plug-in-gmic-qt" typedef struct _GmicQtPlugin GmicQtPlugin; typedef struct _GmicQtPluginClass GmicQtPluginClass; struct _GmicQtPlugin { GimpPlugIn parent_instance; }; struct _GmicQtPluginClass { GimpPlugInClass parent_class; }; #define GMIC_QT_TYPE (gmic_qt_get_type()) // The object is called GmicQtPlugin to avoid name conflict with the namespace. #define GMIC_QT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GMIC_QT_TYPE, GmicQtPlugin)) GType gmic_qt_get_type(void) G_GNUC_CONST; static GList * gmic_qt_query(GimpPlugIn * plug_in); static GimpProcedure * gmic_qt_create_procedure(GimpPlugIn * plug_in, const gchar * name); #if !GIMP_CHECK_VERSION(2, 99, 6) static GimpValueArray * gmic_qt_run(GimpProcedure * procedure, GimpRunMode run_mode, GimpImage * image, GimpDrawable * drawable, const GimpValueArray * args, gpointer run_data); #else #if !GIMP_CHECK_VERSION(2, 99, 19) static GimpValueArray * gmic_qt_run(GimpProcedure * procedure, GimpRunMode run_mode, GimpImage * image, gint n_drawables, GimpDrawable ** drawables, const GimpValueArray * args, gpointer run_data); #else static GimpValueArray * gmic_qt_run(GimpProcedure * procedure, GimpRunMode run_mode, GimpImage * image, gint n_drawables, GimpDrawable ** drawables, GimpProcedureConfig *config, gpointer run_data); #endif #endif G_DEFINE_TYPE(GmicQtPlugin, gmic_qt, GIMP_TYPE_PLUG_IN) GIMP_MAIN(GMIC_QT_TYPE) static void gmic_qt_class_init(GmicQtPluginClass * klass) { GimpPlugInClass * plug_in_class = GIMP_PLUG_IN_CLASS(klass); plug_in_class->query_procedures = gmic_qt_query; plug_in_class->create_procedure = gmic_qt_create_procedure; } static void gmic_qt_init(GmicQtPlugin * gmic_qt) {} #endif namespace GmicQtHost { const QString ApplicationName = QString("GIMP %1.%2").arg(GIMP_MAJOR_VERSION).arg(GIMP_MINOR_VERSION); const char * const ApplicationShortname = GMIC_QT_XSTRINGIFY(GMIC_HOST); #if !GIMP_CHECK_VERSION(2, 9, 0) const bool DarkThemeIsDefault = false; #else const bool DarkThemeIsDefault = true; #endif } // namespace GmicQtHost namespace { _GimpImagePtr gmic_qt_gimp_image_id; gmic_library::gmic_image inputLayerDimensions; std::vector<_GimpLayerPtr> inputLayers; #if GIMP_CHECK_VERSION(2, 9, 0) && !defined(GIMP_NORMAL_MODE) typedef GimpLayerMode GimpLayerModeEffects; #define GIMP_NORMAL_MODE GIMP_LAYER_MODE_NORMAL const QMap BlendingModesMap = {{QString("alpha"), GIMP_LAYER_MODE_NORMAL}, {QString("normal"), GIMP_LAYER_MODE_NORMAL}, {QString("dissolve"), GIMP_LAYER_MODE_DISSOLVE}, {QString("behind"), GIMP_LAYER_MODE_BEHIND}, {QString("colorerase"), GIMP_LAYER_MODE_COLOR_ERASE}, {QString("erase"), GIMP_LAYER_MODE_ERASE}, {QString("merge"), GIMP_LAYER_MODE_MERGE}, {QString("split"), GIMP_LAYER_MODE_SPLIT}, {QString("lighten"), GIMP_LAYER_MODE_LIGHTEN_ONLY}, {QString("lumalighten"), GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY}, {QString("screen"), GIMP_LAYER_MODE_SCREEN}, {QString("dodge"), GIMP_LAYER_MODE_DODGE}, {QString("addition"), GIMP_LAYER_MODE_ADDITION}, {QString("darken"), GIMP_LAYER_MODE_DARKEN_ONLY}, {QString("lumadarken"), GIMP_LAYER_MODE_LUMA_DARKEN_ONLY}, {QString("multiply"), GIMP_LAYER_MODE_MULTIPLY}, {QString("burn"), GIMP_LAYER_MODE_BURN}, {QString("overlay"), GIMP_LAYER_MODE_OVERLAY}, {QString("softlight"), GIMP_LAYER_MODE_SOFTLIGHT}, {QString("hardlight"), GIMP_LAYER_MODE_HARDLIGHT}, {QString("vividlight"), GIMP_LAYER_MODE_VIVID_LIGHT}, {QString("pinlight"), GIMP_LAYER_MODE_PIN_LIGHT}, {QString("linearlight"), GIMP_LAYER_MODE_LINEAR_LIGHT}, {QString("hardmix"), GIMP_LAYER_MODE_HARD_MIX}, {QString("difference"), GIMP_LAYER_MODE_DIFFERENCE}, {QString("subtract"), GIMP_LAYER_MODE_SUBTRACT}, {QString("grainextract"), GIMP_LAYER_MODE_GRAIN_EXTRACT}, {QString("grainmerge"), GIMP_LAYER_MODE_GRAIN_MERGE}, {QString("divide"), GIMP_LAYER_MODE_DIVIDE}, {QString("hue"), GIMP_LAYER_MODE_HSV_HUE}, {QString("saturation"), GIMP_LAYER_MODE_HSV_SATURATION}, {QString("color"), GIMP_LAYER_MODE_HSL_COLOR}, {QString("value"), GIMP_LAYER_MODE_HSV_VALUE}, {QString("lchhue"), GIMP_LAYER_MODE_LCH_HUE}, {QString("lchchroma"), GIMP_LAYER_MODE_LCH_CHROMA}, {QString("lchcolor"), GIMP_LAYER_MODE_LCH_COLOR}, {QString("lchlightness"), GIMP_LAYER_MODE_LCH_LIGHTNESS}, {QString("luminance"), GIMP_LAYER_MODE_LUMINANCE}, {QString("exclusion"), GIMP_LAYER_MODE_EXCLUSION}}; #else const QMap BlendingModesMap = {{QString("alpha"), GIMP_NORMAL_MODE}, {QString("normal"), GIMP_NORMAL_MODE}, {QString("dissolve"), GIMP_DISSOLVE_MODE}, {QString("lighten"), GIMP_LIGHTEN_ONLY_MODE}, {QString("screen"), GIMP_SCREEN_MODE}, {QString("dodge"), GIMP_DODGE_MODE}, {QString("addition"), GIMP_ADDITION_MODE}, {QString("darken"), GIMP_DARKEN_ONLY_MODE}, {QString("multiply"), GIMP_MULTIPLY_MODE}, {QString("burn"), GIMP_BURN_MODE}, {QString("overlay"), GIMP_OVERLAY_MODE}, {QString("softlight"), GIMP_SOFTLIGHT_MODE}, {QString("hardlight"), GIMP_HARDLIGHT_MODE}, {QString("difference"), GIMP_DIFFERENCE_MODE}, {QString("subtract"), GIMP_SUBTRACT_MODE}, {QString("grainextract"), GIMP_GRAIN_EXTRACT_MODE}, {QString("grainmerge"), GIMP_GRAIN_MERGE_MODE}, {QString("divide"), GIMP_DIVIDE_MODE}, {QString("hue"), GIMP_HUE_MODE}, {QString("saturation"), GIMP_SATURATION_MODE}, {QString("color"), GIMP_COLOR_MODE}, {QString("value"), GIMP_VALUE_MODE}}; #endif QMap reverseBlendingModeMap(const QMap & string2mode) { QMap result; QMap::const_iterator it = string2mode.cbegin(); while (it != string2mode.cend()) { result[it.value()] = it.key(); ++it; } result[GIMP_NORMAL_MODE] = QString("alpha"); return result; } QString blendingMode2String(const GimpLayerModeEffects & blendingMode) { static QMap mode2string = reverseBlendingModeMap(BlendingModesMap); QMap::const_iterator it = mode2string.find(blendingMode); if (it != mode2string.cend()) { return it.value(); } else { return QString("alpha"); } } #ifdef _IS_WINDOWS_ QByteArray mapToASCII(const char * str) { static const QTextCodec * codec = QTextCodec::codecForName("ASCII"); return codec->fromUnicode(QString::fromUtf8(str)); } inline void _GIMP_ITEM_SET_NAME(_GimpItemPtr item_ID, const gchar * name) { gimp_item_set_name(item_ID, mapToASCII(name).constData()); } #else inline void _GIMP_ITEM_SET_NAME(_GimpItemPtr item_ID, const gchar * name) { gimp_item_set_name(item_ID, name); } #endif // Get layer blending mode from string. //------------------------------------- void get_output_layer_props(const char * const s, GimpLayerModeEffects & blendmode, double & opacity, int & posx, int & posy, gmic_library::gmic_image & name) { if (!s || !*s) return; QString str(s); // Read output blending mode. QRegularExpression modeRe(R"_(mode\(\s*([^)]*)\s*\))_"); QRegularExpressionMatch match = modeRe.match(str); if (match.hasMatch()) { QString modeStr = match.captured(1).trimmed(); if (BlendingModesMap.find(modeStr) != BlendingModesMap.end()) { blendmode = BlendingModesMap[modeStr]; } } // Read output opacity. QRegularExpression opacityRe(R"_(opacity\(\s*([^)]*)\s*\))_"); match = opacityRe.match(str); if (match.hasMatch()) { QString opacityStr = match.captured(1).trimmed(); bool ok = false; double x = opacityStr.toDouble(&ok); if (ok) { opacity = x; if (opacity < 0) { opacity = 0; } else if (opacity > 100) { opacity = 100; } } } // Read output positions. QRegularExpression posRe(R"_(pos\(\s*(-?\d*)[^)](-?\d*)\s*\))_"); // FIXME : Allow more spaces match = posRe.match(str); if (match.hasMatch()) { QString xStr = match.captured(1); QString yStr = match.captured(2); bool okX = false; bool okY = false; int x = xStr.toInt(&okX); int y = yStr.toInt(&okY); if (okX && okY) { posx = x; posy = y; } } // Read output name. const char * S = std::strstr(s, "name("); if (S) { const char * ps = S + 5; unsigned int level = 1; while (*ps && level) { if (*ps == '(') { ++level; } else if (*ps == ')') { --level; } ++ps; } if (!level || *(ps - 1) == ')') { name.assign(S + 5, (unsigned int)(ps - S - 5)).back() = 0; cimg_for(name, pn, char) { if (*pn == 21) { *pn = '('; } else if (*pn == 22) { *pn = ')'; } } } } } _GimpLayerPtr * get_gimp_layers_flat_list(_GimpImagePtr imageId, int * count) { static std::vector<_GimpLayerPtr> layersId; std::stack<_GimpLayerPtr> idStack; int layersCount = 0; _GimpLayerPtr * layers = gimp_image_get_layers(imageId, &layersCount); for (int i = layersCount - 1; i >= 0; --i) { idStack.push(layers[i]); } layersId.clear(); while (!idStack.empty()) { if (gimp_item_is_group(_GIMP_ITEM(idStack.top()))) { int childCount = 0; _GimpItemPtr * children = gimp_item_get_children(_GIMP_ITEM(idStack.top()), &childCount); idStack.pop(); for (int i = childCount - 1; i >= 0; --i) { idStack.push(_GIMP_LAYER(children[i])); // TODO: Check if layers can have non-layer children. } } else { layersId.push_back(idStack.top()); idStack.pop(); } } *count = layersId.size(); return layersId.data(); } template void image2uchar(gmic_library::gmic_image & img) { unsigned int len = img.width() * img.height(); auto dst = reinterpret_cast(img.data()); switch (img.spectrum()) { case 1: { const T * src = img.data(0, 0, 0, 0); while (len--) { *dst++ = static_cast(*src++); } } break; case 2: { const T * srcG = img.data(0, 0, 0, 0); const T * srcA = img.data(0, 0, 0, 1); while (len--) { dst[0] = static_cast(*srcG++); dst[1] = static_cast(*srcA++); dst += 2; } } break; case 3: { const T * srcR = img.data(0, 0, 0, 0); const T * srcG = img.data(0, 0, 0, 1); const T * srcB = img.data(0, 0, 0, 2); while (len--) { dst[0] = static_cast(*srcR++); dst[1] = static_cast(*srcG++); dst[2] = static_cast(*srcB++); dst += 3; } } break; case 4: { const T * srcR = img.data(0, 0, 0, 0); const T * srcG = img.data(0, 0, 0, 1); const T * srcB = img.data(0, 0, 0, 2); const T * srcA = img.data(0, 0, 0, 3); while (len--) { dst[0] = static_cast(*srcR++); dst[1] = static_cast(*srcG++); dst[2] = static_cast(*srcB++); dst[3] = static_cast(*srcA++); dst += 4; } } break; default: return; } } } // namespace namespace GmicQtHost { void showMessage(const char * message) { static bool first = true; if (first) { gimp_progress_init(message); first = false; } else { gimp_progress_set_text_printf("%s", message); } } void applyColorProfile(gmic_library::gmic_image & image) { #if !GIMP_CHECK_VERSION(2, 9, 0) unused(image); // SWAP RED<->GREEN CHANNELS : FOR TESTING PURPOSE ONLY! // cimg_forXY(image,x,y) { // std::swap(image(x,y,0,0),image(x,y,0,1)); // } #else unused(image); // GimpColorProfile * const img_profile = gimp_image_get_effective_color_profile(gmic_qt_gimp_image_id); // GimpColorConfig * const color_config = gimp_get_color_configuration(); // if (!img_profile || !color_config) { // return; // } // if (!image || image.spectrum() < 3 || image.spectrum() > 4 ) { // continue; // } // const Babl *const fmt = babl_format(image.spectrum()==3?"R'G'B' float":"R'G'B'A float"); // GimpColorTransform *const transform = gimp_widget_get_color_transform(gui_preview, // color_config, // img_profile, // fmt, // fmt); // if (!transform) { // continue; // } // gmic_library::gmic_image corrected; // image.get_permute_axes("cxyz").move_to(corrected) /= 255; // gimp_color_transform_process_pixels(transform,fmt,corrected,fmt,corrected, // corrected.height()*corrected.depth()); // (corrected.permute_axes("yzcx")*=255).cut(0,255).move_to(image); // g_object_unref(transform); #endif } void getLayersExtent(int * width, int * height, GmicQt::InputMode mode) { int layersCount = 0; // _GimpLayerPtr * begLayers = gimp_image_get_layers(gmic_qt_gimp_image_id, &layersCount); _GimpLayerPtr * begLayers = get_gimp_layers_flat_list(gmic_qt_gimp_image_id, &layersCount); _GimpLayerPtr * endLayers = begLayers + layersCount; #if GIMP_CHECK_VERSION(2, 99, 12) GList * selected_layers = gimp_image_list_selected_layers(gmic_qt_gimp_image_id); GList * first_layer = g_list_first(selected_layers); _GimpLayerPtr activeLayerID = (_GimpLayerPtr)first_layer->data; #else _GimpLayerPtr activeLayerID = gimp_image_get_active_layer(gmic_qt_gimp_image_id); #endif // Build list of input layers IDs std::vector<_GimpLayerPtr> layers; switch (mode) { case GmicQt::InputMode::NoInput: break; case GmicQt::InputMode::Active: if (_GIMP_LAYER_IS_NOT_NULL(activeLayerID) && !gimp_item_is_group(_GIMP_ITEM(activeLayerID))) { layers.push_back(activeLayerID); } break; case GmicQt::InputMode::All: layers.assign(begLayers, endLayers); break; case GmicQt::InputMode::ActiveAndBelow: if (_GIMP_LAYER_IS_NOT_NULL(activeLayerID) && !gimp_item_is_group(_GIMP_ITEM(activeLayerID))) { layers.push_back(activeLayerID); _GimpLayerPtr * p = std::find(begLayers, endLayers, activeLayerID); if (p < endLayers - 1) { layers.push_back(*(p + 1)); } } break; case GmicQt::InputMode::ActiveAndAbove: if (_GIMP_LAYER_IS_NOT_NULL(activeLayerID) && !gimp_item_is_group(_GIMP_ITEM(activeLayerID))) { _GimpLayerPtr * p = std::find(begLayers, endLayers, activeLayerID); if (p > begLayers) { layers.push_back(*(p - 1)); } layers.push_back(activeLayerID); } break; case GmicQt::InputMode::AllVisible: case GmicQt::InputMode::AllInvisible: { bool visibility = (mode == GmicQt::InputMode::AllVisible); for (int i = 0; i < layersCount; ++i) { if (_gimp_item_get_visible(_GIMP_ITEM(begLayers[i])) == visibility) { layers.push_back(begLayers[i]); } } } break; default: break; } gint rgn_x, rgn_y, rgn_width, rgn_height; *width = 0; *height = 0; for (_GimpLayerPtr layer : layers) { if (!gimp_item_is_valid(_GIMP_ITEM(layer))) { continue; } if (!gimp_drawable_mask_intersect(_GIMP_DRAWABLE(layer), &rgn_x, &rgn_y, &rgn_width, &rgn_height)) { continue; } *width = std::max(*width, rgn_width); *height = std::max(*height, rgn_height); } } void getCroppedImages(gmic_list & images, gmic_list & imageNames, double x, double y, double width, double height, GmicQt::InputMode mode) { using gmic_library::gmic_image; using gmic_library::gmic_list; int layersCount = 0; _GimpLayerPtr * layers = get_gimp_layers_flat_list(gmic_qt_gimp_image_id, &layersCount); _GimpLayerPtr * end_layers = layers + layersCount; #if GIMP_CHECK_VERSION(2, 99, 12) GList * selected_layers = gimp_image_list_selected_layers(gmic_qt_gimp_image_id); GList * first_layer = g_list_first(selected_layers); _GimpLayerPtr active_layer_id = (_GimpLayerPtr)first_layer->data; #else _GimpLayerPtr active_layer_id = gimp_image_get_active_layer(gmic_qt_gimp_image_id); #endif const bool entireImage = (x < 0 && y < 0 && width < 0 && height < 0) || (x == 0.0 && y == 0 && width == 1 && height == 0); if (entireImage) { x = 0.0; y = 0.0; width = 1.0; height = 1.0; } // Build list of input layers IDs inputLayers.clear(); switch (mode) { case GmicQt::InputMode::NoInput: break; case GmicQt::InputMode::Active: if (_GIMP_LAYER_IS_NOT_NULL(active_layer_id) && !gimp_item_is_group(_GIMP_ITEM(active_layer_id))) { inputLayers.push_back(active_layer_id); } break; case GmicQt::InputMode::All: inputLayers.assign(layers, end_layers); break; case GmicQt::InputMode::ActiveAndBelow: if (_GIMP_LAYER_IS_NOT_NULL(active_layer_id) && !gimp_item_is_group(_GIMP_ITEM(active_layer_id))) { inputLayers.push_back(active_layer_id); _GimpLayerPtr * p = std::find(layers, end_layers, active_layer_id); if (p < end_layers - 1) { inputLayers.push_back(*(p + 1)); } } break; case GmicQt::InputMode::ActiveAndAbove: if (_GIMP_LAYER_IS_NOT_NULL(active_layer_id) && !gimp_item_is_group(_GIMP_ITEM(active_layer_id))) { _GimpLayerPtr * p = std::find(layers, end_layers, active_layer_id); if (p > layers) { inputLayers.push_back(*(p - 1)); } inputLayers.push_back(active_layer_id); } break; case GmicQt::InputMode::AllVisible: case GmicQt::InputMode::AllInvisible: { bool visibility = (mode == GmicQt::InputMode::AllVisible); for (int i = 0; i < layersCount; ++i) { if (_gimp_item_get_visible(_GIMP_ITEM(layers[i])) == visibility) { inputLayers.push_back(layers[i]); } } } break; default: break; } // Retrieve image list images.assign(inputLayers.size()); imageNames.assign(inputLayers.size()); inputLayerDimensions.assign(inputLayers.size(), 4); gint rgn_x, rgn_y, rgn_width, rgn_height; gboolean isSelection = 0; gint selX1 = 0, selY1 = 0, selX2 = 0, selY2 = 0; if (!gimp_selection_bounds(gmic_qt_gimp_image_id, &isSelection, &selX1, &selY1, &selX2, &selY2)) { isSelection = 0; selX1 = 0; selY1 = 0; } cimglist_for(images, l) { if (!gimp_item_is_valid(_GIMP_ITEM(inputLayers[l]))) { continue; } if (!gimp_drawable_mask_intersect(_GIMP_DRAWABLE(inputLayers[l]), &rgn_x, &rgn_y, &rgn_width, &rgn_height)) { inputLayerDimensions(l, 0) = 0; inputLayerDimensions(l, 1) = 0; inputLayerDimensions(l, 2) = 0; inputLayerDimensions(l, 3) = 0; continue; } const int spectrum = (gimp_drawable_is_rgb(_GIMP_DRAWABLE(inputLayers[l])) ? 3 : 1) + (gimp_drawable_has_alpha(_GIMP_DRAWABLE(inputLayers[l])) ? 1 : 0); const int dw = static_cast(_gimp_drawable_get_width(_GIMP_DRAWABLE(inputLayers[l]))); const int dh = static_cast(_gimp_drawable_get_height(_GIMP_DRAWABLE(inputLayers[l]))); const int ix = static_cast(entireImage ? rgn_x : (rgn_x + x * rgn_width)); const int iy = static_cast(entireImage ? rgn_y : (rgn_y + y * rgn_height)); const int iw = entireImage ? rgn_width : std::min(dw - ix, static_cast(1 + std::ceil(rgn_width * width))); const int ih = entireImage ? rgn_height : std::min(dh - iy, static_cast(1 + std::ceil(rgn_height * height))); if (entireImage) { inputLayerDimensions(l, 0) = rgn_width; inputLayerDimensions(l, 1) = rgn_height; } else { inputLayerDimensions(l, 0) = iw; inputLayerDimensions(l, 1) = ih; } inputLayerDimensions(l, 2) = 1; inputLayerDimensions(l, 3) = spectrum; const float opacity = gimp_layer_get_opacity(inputLayers[l]); const GimpLayerModeEffects blendMode = gimp_layer_get_mode(inputLayers[l]); int xPos = 0; int yPos = 0; if (isSelection) { xPos = selX1; yPos = selY1; } else { _gimp_drawable_get_offsets(_GIMP_DRAWABLE(inputLayers[l]), &xPos, &yPos); } QString noParenthesisName(gimp_item_get_name(_GIMP_ITEM(inputLayers[l]))); noParenthesisName.replace(QChar('('), QChar(21)).replace(QChar(')'), QChar(22)); QString name = QString("mode(%1),opacity(%2),pos(%3,%4),name(%5)").arg(blendingMode2String(blendMode)).arg(opacity).arg(xPos).arg(yPos).arg(noParenthesisName); QByteArray ba = name.toUtf8(); gmic_image::string(ba.constData()).move_to(imageNames[l]); #if !GIMP_CHECK_VERSION(2, 9, 0) GimpDrawable * drawable = gimp_drawable_get(inputLayers[l]); GimpPixelRgn region; gimp_pixel_rgn_init(®ion, drawable, ix, iy, iw, ih, false, false); gmic_image img(spectrum, iw, ih); gimp_pixel_rgn_get_rect(®ion, img, ix, iy, iw, ih); gimp_drawable_detach(drawable); img.permute_axes("yzcx"); #else GeglRectangle rect; gegl_rectangle_set(&rect, ix, iy, iw, ih); GeglBuffer * buffer = gimp_drawable_get_buffer(_GIMP_DRAWABLE(inputLayers[l])); const char * const format = spectrum == 1 ? "Y' " gmic_pixel_type_str : spectrum == 2 ? "Y'A " gmic_pixel_type_str : spectrum == 3 ? "R'G'B' " gmic_pixel_type_str : "R'G'B'A " gmic_pixel_type_str; gmic_image img(spectrum, iw, ih); gegl_buffer_get(buffer, &rect, 1, babl_format(format), img.data(), 0, GEGL_ABYSS_NONE); (img *= 255).permute_axes("yzcx"); g_object_unref(buffer); #endif img.move_to(images[l]); } } void outputImages(gmic_list & images, const gmic_list & imageNames, GmicQt::OutputMode outputMode) { // Output modes in original gmic_gimp_gtk : 0/Replace 1/New layer 2/New active layer 3/New image // spectrum to GIMP image types conversion table GimpImageType spectrum2gimpImageTypes[5] = {GIMP_INDEXED_IMAGE, // (unused) GIMP_GRAY_IMAGE, GIMP_GRAYA_IMAGE, GIMP_RGB_IMAGE, GIMP_RGBA_IMAGE}; // Get output layers dimensions and check if input/output layers have compatible dimensions. unsigned int max_spectrum = 0; struct Position { gint x, y; Position() : x(0), y(0) {} } top_left, bottom_right; cimglist_for(images, l) { if (images[l].is_empty()) { images.remove(l--); continue; } // Discard possible empty images. bottom_right.x = std::max(bottom_right.x, (gint)images[l]._width); bottom_right.y = std::max(bottom_right.y, (gint)images[l]._height); if (images[l]._spectrum > max_spectrum) { max_spectrum = images[l]._spectrum; } } int image_nb_layers = 0; get_gimp_layers_flat_list(gmic_qt_gimp_image_id, &image_nb_layers); unsigned int image_width = 0, image_height = 0; if (inputLayers.size()) { image_width = _gimp_image_get_width(gmic_qt_gimp_image_id); image_height = _gimp_image_get_height(gmic_qt_gimp_image_id); } int is_selection = 0, sel_x0 = 0, sel_y0 = 0, sel_x1 = 0, sel_y1 = 0; if (!gimp_selection_bounds(gmic_qt_gimp_image_id, &is_selection, &sel_x0, &sel_y0, &sel_x1, &sel_y1)) { is_selection = 0; } else if (outputMode == GmicQt::OutputMode::InPlace || outputMode == GmicQt::OutputMode::NewImage) { sel_x0 = sel_y0 = 0; } bool is_compatible_dimensions = (images.size() == inputLayers.size()); for (unsigned int p = 0; p < images.size() && is_compatible_dimensions; ++p) { const gmic_library::gmic_image & img = images[p]; const bool source_is_alpha = (inputLayerDimensions(p, 3) == 2 || inputLayerDimensions(p, 3) >= 4); const bool dest_is_alpha = (img.spectrum() == 2 || img.spectrum() >= 4); if (dest_is_alpha && !source_is_alpha) { gimp_layer_add_alpha(inputLayers[p]); ++inputLayerDimensions(p, 3); } if (img.width() != inputLayerDimensions(p, 0) || img.height() != inputLayerDimensions(p, 1)) { is_compatible_dimensions = false; } } // Transfer output layers back into GIMP. GimpLayerModeEffects layer_blendmode = GIMP_NORMAL_MODE; gint layer_posx = 0, layer_posy = 0; double layer_opacity = 100; gmic_library::gmic_image layer_name; if (outputMode == GmicQt::OutputMode::InPlace) { gint rgn_x, rgn_y, rgn_width, rgn_height; gimp_image_undo_group_start(gmic_qt_gimp_image_id); if (is_compatible_dimensions) { // Direct replacement of the layer data. for (unsigned int p = 0; p < images.size(); ++p) { layer_blendmode = gimp_layer_get_mode(inputLayers[p]); layer_opacity = gimp_layer_get_opacity(inputLayers[p]); _gimp_drawable_get_offsets(_GIMP_DRAWABLE(inputLayers[p]), &layer_posx, &layer_posy); gmic_library::gmic_image::string(gimp_item_get_name(_GIMP_ITEM(inputLayers[p]))).move_to(layer_name); get_output_layer_props(imageNames[p], layer_blendmode, layer_opacity, layer_posx, layer_posy, layer_name); gmic_library::gmic_image & img = images[p]; GmicQt::calibrateImage(img, inputLayerDimensions(p, 3), false); if (gimp_drawable_mask_intersect(_GIMP_DRAWABLE(inputLayers[p]), &rgn_x, &rgn_y, &rgn_width, &rgn_height)) { #if !GIMP_CHECK_VERSION(2, 9, 0) GimpDrawable * drawable = gimp_drawable_get(inputLayers[p]); GimpPixelRgn region; gimp_pixel_rgn_init(®ion, drawable, rgn_x, rgn_y, rgn_width, rgn_height, true, true); image2uchar(img); gimp_pixel_rgn_set_rect(®ion, (guchar *)img.data(), rgn_x, rgn_y, rgn_width, rgn_height); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(inputLayers[p], true); gimp_drawable_update(inputLayers[p], rgn_x, rgn_y, rgn_width, rgn_height); gimp_drawable_detach(drawable); #else GeglRectangle rect; gegl_rectangle_set(&rect, rgn_x, rgn_y, rgn_width, rgn_height); GeglBuffer * buffer = gimp_drawable_get_shadow_buffer(_GIMP_DRAWABLE(inputLayers[p])); const char * const format = img.spectrum() == 1 ? "Y' float" : img.spectrum() == 2 ? "Y'A float" : img.spectrum() == 3 ? "R'G'B' float" : "R'G'B'A float"; (img /= 255).permute_axes("cxyz"); gegl_buffer_set(buffer, &rect, 0, babl_format(format), img.data(), 0); g_object_unref(buffer); gimp_drawable_merge_shadow(_GIMP_DRAWABLE(inputLayers[p]), true); gimp_drawable_update(_GIMP_DRAWABLE(inputLayers[p]), 0, 0, img.width(), img.height()); #endif gimp_layer_set_mode(inputLayers[p], layer_blendmode); gimp_layer_set_opacity(inputLayers[p], layer_opacity); if (!is_selection) { gimp_layer_set_offsets(inputLayers[p], layer_posx, layer_posy); } else { #if !GIMP_CHECK_VERSION(2, 9, 0) gimp_layer_translate(inputLayers[p], 0, 0); #else gimp_item_transform_translate(_GIMP_ITEM(inputLayers[p]), 0, 0); #endif } if (layer_name) { _GIMP_ITEM_SET_NAME(_GIMP_ITEM(inputLayers[p]), layer_name); } } img.assign(); } } else { // Indirect replacement: create new layers. gimp_selection_none(gmic_qt_gimp_image_id); const int layer_pos = _gimp_image_get_item_position(gmic_qt_gimp_image_id, _GIMP_ITEM(inputLayers[0])); top_left.x = top_left.y = 0; bottom_right.x = bottom_right.y = 0; for (unsigned int p = 0; p < images.size(); ++p) { if (images[p]) { layer_posx = layer_posy = 0; if (p < inputLayers.size()) { layer_blendmode = gimp_layer_get_mode(inputLayers[p]); layer_opacity = gimp_layer_get_opacity(inputLayers[p]); if (!is_selection) { _gimp_drawable_get_offsets(_GIMP_DRAWABLE(inputLayers[p]), &layer_posx, &layer_posy); } gmic_library::gmic_image::string(gimp_item_get_name(_GIMP_ITEM(inputLayers[p]))).move_to(layer_name); gimp_image_remove_layer(gmic_qt_gimp_image_id, inputLayers[p]); } else { layer_blendmode = GIMP_NORMAL_MODE; layer_opacity = 100; layer_name.assign(); } get_output_layer_props(imageNames[p], layer_blendmode, layer_opacity, layer_posx, layer_posy, layer_name); if (is_selection) { layer_posx = 0; layer_posy = 0; } top_left.x = std::min(top_left.x, layer_posx); top_left.y = std::min(top_left.y, layer_posy); bottom_right.x = std::max(bottom_right.x, (gint)(layer_posx + images[p]._width)); bottom_right.y = std::max(bottom_right.y, (gint)(layer_posy + images[p]._height)); gmic_library::gmic_image & img = images[p]; if (_gimp_image_get_base_type(gmic_qt_gimp_image_id) == GIMP_GRAY) { GmicQt::calibrateImage(img, (img.spectrum() == 1 || img.spectrum() == 3) ? 1 : 2, false); } else { GmicQt::calibrateImage(img, (img.spectrum() == 1 || img.spectrum() == 3) ? 3 : 4, false); } _GimpLayerPtr layer_id = gimp_layer_new(gmic_qt_gimp_image_id, nullptr, img.width(), img.height(), spectrum2gimpImageTypes[std::min(img.spectrum(), 4)], layer_opacity, layer_blendmode); gimp_layer_set_offsets(layer_id, layer_posx, layer_posy); if (layer_name) { _GIMP_ITEM_SET_NAME(_GIMP_ITEM(layer_id), layer_name); } gimp_image_insert_layer(gmic_qt_gimp_image_id, layer_id, _GIMP_NULL_LAYER, layer_pos + p); #if !GIMP_CHECK_VERSION(2, 9, 0) GimpDrawable * drawable = gimp_drawable_get(layer_id); GimpPixelRgn region; gimp_pixel_rgn_init(®ion, drawable, 0, 0, drawable->width, drawable->height, true, true); image2uchar(img); gimp_pixel_rgn_set_rect(®ion, (guchar *)img.data(), 0, 0, img.width(), img.height()); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(layer_id, true); gimp_drawable_update(layer_id, 0, 0, drawable->width, drawable->height); gimp_drawable_detach(drawable); #else GeglBuffer * buffer = gimp_drawable_get_shadow_buffer(_GIMP_DRAWABLE(layer_id)); const char * const format = img.spectrum() == 1 ? "Y' float" : img.spectrum() == 2 ? "Y'A float" : img.spectrum() == 3 ? "R'G'B' float" : "R'G'B'A float"; (img /= 255).permute_axes("cxyz"); gegl_buffer_set(buffer, NULL, 0, babl_format(format), img.data(), 0); g_object_unref(buffer); gimp_drawable_merge_shadow(_GIMP_DRAWABLE(layer_id), true); gimp_drawable_update(_GIMP_DRAWABLE(layer_id), 0, 0, img.width(), img.height()); #endif img.assign(); } } const unsigned int max_width = bottom_right.x - top_left.x; const unsigned int max_height = bottom_right.y - top_left.y; for (unsigned int p = images._width; p < inputLayers.size(); ++p) { gimp_image_remove_layer(gmic_qt_gimp_image_id, inputLayers[p]); } if ((unsigned int)image_nb_layers == inputLayers.size()) { gimp_image_resize(gmic_qt_gimp_image_id, max_width, max_height, -top_left.x, -top_left.y); } else { gimp_image_resize(gmic_qt_gimp_image_id, std::max(image_width, max_width), std::max(image_height, max_height), 0, 0); } } gimp_image_undo_group_end(gmic_qt_gimp_image_id); } else if (outputMode == GmicQt::OutputMode::NewActiveLayers || outputMode == GmicQt::OutputMode::NewLayers) { #if GIMP_CHECK_VERSION(2, 99, 12) GList * selected_layers = gimp_image_list_selected_layers(gmic_qt_gimp_image_id); GList * first_layer = g_list_first(selected_layers); _GimpLayerPtr active_layer_id = (_GimpLayerPtr)first_layer->data; #else _GimpLayerPtr active_layer_id = gimp_image_get_active_layer(gmic_qt_gimp_image_id); #endif if (_GIMP_LAYER_IS_NOT_NULL(active_layer_id)) { gimp_image_undo_group_start(gmic_qt_gimp_image_id); _GimpLayerPtr top_layer_id = _gimp_top_layer; _GimpLayerPtr layer_id = _gimp_top_layer; top_left.x = top_left.y = 0; bottom_right.x = bottom_right.y = 0; for (unsigned int p = 0; p < images.size(); ++p) { if (images[p]) { layer_blendmode = GIMP_NORMAL_MODE; layer_opacity = 100; layer_posx = layer_posy = 0; if (inputLayers.size() == 1) { if (!is_selection) { _gimp_drawable_get_offsets(_GIMP_DRAWABLE(active_layer_id), &layer_posx, &layer_posy); } gmic_library::gmic_image::string(gimp_item_get_name(_GIMP_ITEM(active_layer_id))).move_to(layer_name); } else { layer_name.assign(); } get_output_layer_props(imageNames[p], layer_blendmode, layer_opacity, layer_posx, layer_posy, layer_name); top_left.x = std::min(top_left.x, layer_posx); top_left.y = std::min(top_left.y, layer_posy); bottom_right.x = std::max(bottom_right.x, (gint)(layer_posx + images[p]._width)); bottom_right.y = std::max(bottom_right.y, (gint)(layer_posy + images[p]._height)); gmic_library::gmic_image & img = images[p]; if (_gimp_image_get_base_type(gmic_qt_gimp_image_id) == GIMP_GRAY) { GmicQt::calibrateImage(img, !is_selection && (img.spectrum() == 1 || img.spectrum() == 3) ? 1 : 2, false); } else { GmicQt::calibrateImage(img, !is_selection && (img.spectrum() == 1 || img.spectrum() == 3) ? 3 : 4, false); } layer_id = gimp_layer_new(gmic_qt_gimp_image_id, nullptr, img.width(), img.height(), spectrum2gimpImageTypes[std::min(img.spectrum(), 4)], layer_opacity, layer_blendmode); if (!p) { top_layer_id = layer_id; } gimp_layer_set_offsets(layer_id, layer_posx, layer_posy); if (layer_name) { _GIMP_ITEM_SET_NAME(_GIMP_ITEM(layer_id), layer_name); } gimp_image_insert_layer(gmic_qt_gimp_image_id, layer_id, _GIMP_NULL_LAYER, p); #if !GIMP_CHECK_VERSION(2, 9, 0) GimpDrawable * drawable = gimp_drawable_get(layer_id); GimpPixelRgn region; gimp_pixel_rgn_init(®ion, drawable, 0, 0, drawable->width, drawable->height, true, true); image2uchar(img); gimp_pixel_rgn_set_rect(®ion, (guchar *)img.data(), 0, 0, img.width(), img.height()); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(layer_id, true); gimp_drawable_update(layer_id, 0, 0, drawable->width, drawable->height); gimp_drawable_detach(drawable); #else GeglBuffer * buffer = gimp_drawable_get_shadow_buffer(_GIMP_DRAWABLE(layer_id)); const char * const format = img.spectrum() == 1 ? "Y' float" : img.spectrum() == 2 ? "Y'A float" : img.spectrum() == 3 ? "R'G'B' float" : "R'G'B'A float"; (img /= 255).permute_axes("cxyz"); gegl_buffer_set(buffer, NULL, 0, babl_format(format), img.data(), 0); g_object_unref(buffer); gimp_drawable_merge_shadow(_GIMP_DRAWABLE(layer_id), true); gimp_drawable_update(_GIMP_DRAWABLE(layer_id), 0, 0, img.width(), img.height()); #endif img.assign(); } const unsigned int max_width = bottom_right.x - top_left.x; const unsigned int max_height = bottom_right.y - top_left.y; const unsigned int Mw = std::max(image_width, max_width); const unsigned int Mh = std::max(image_height, max_height); if (Mw && Mh) { gimp_image_resize(gmic_qt_gimp_image_id, Mw, Mh, -top_left.x, -top_left.y); } #if GIMP_CHECK_VERSION(2, 99, 12) GimpLayer * selected_layer; if (outputMode == GmicQt::OutputMode::NewLayers) { selected_layer = active_layer_id; } else { selected_layer = top_layer_id; } gimp_image_set_selected_layers(gmic_qt_gimp_image_id, 1, (const GimpLayer **)&selected_layer); #else if (outputMode == GmicQt::OutputMode::NewLayers) { gimp_image_set_active_layer(gmic_qt_gimp_image_id, active_layer_id); } else { gimp_image_set_active_layer(gmic_qt_gimp_image_id, top_layer_id); } #endif } gimp_image_undo_group_end(gmic_qt_gimp_image_id); } } else if (outputMode == GmicQt::OutputMode::NewImage && images.size()) { #if GIMP_CHECK_VERSION(2, 99, 12) GList * selected_layers = gimp_image_list_selected_layers(gmic_qt_gimp_image_id); GList * first = g_list_first(selected_layers); _GimpLayerPtr active_layer_id = (_GimpLayerPtr)first->data; #else _GimpLayerPtr active_layer_id = gimp_image_get_active_layer(gmic_qt_gimp_image_id); #endif const unsigned int max_width = (unsigned int)bottom_right.x; const unsigned int max_height = (unsigned int)bottom_right.y; if (_GIMP_LAYER_IS_NOT_NULL(active_layer_id)) { #if !GIMP_CHECK_VERSION(2, 9, 0) _GimpImagePtr nimage_id = gimp_image_new(max_width, max_height, max_spectrum <= 2 ? GIMP_GRAY : GIMP_RGB); #else _GimpImagePtr nimage_id = gimp_image_new_with_precision(max_width, max_height, max_spectrum <= 2 ? GIMP_GRAY : GIMP_RGB, gimp_image_get_precision(gmic_qt_gimp_image_id)); #endif gimp_image_undo_group_start(nimage_id); for (unsigned int p = 0; p < images.size(); ++p) { if (images[p]) { layer_blendmode = GIMP_NORMAL_MODE; layer_opacity = 100; layer_posx = layer_posy = 0; if (inputLayers.size() == 1) { if (!is_selection) { _gimp_drawable_get_offsets(_GIMP_DRAWABLE(active_layer_id), &layer_posx, &layer_posy); } gmic_library::gmic_image::string(gimp_item_get_name(_GIMP_ITEM(active_layer_id))).move_to(layer_name); } else { layer_name.assign(); } get_output_layer_props(imageNames[p], layer_blendmode, layer_opacity, layer_posx, layer_posy, layer_name); if (is_selection) { layer_posx = 0; layer_posy = 0; } gmic_library::gmic_image & img = images[p]; if (_gimp_image_get_base_type(nimage_id) != GIMP_GRAY) { GmicQt::calibrateImage(img, (img.spectrum() == 1 || img.spectrum() == 3) ? 3 : 4, false); } _GimpLayerPtr layer_id = gimp_layer_new(nimage_id, nullptr, img.width(), img.height(), spectrum2gimpImageTypes[std::min(img.spectrum(), 4)], layer_opacity, layer_blendmode); gimp_layer_set_offsets(layer_id, layer_posx, layer_posy); if (layer_name) { _GIMP_ITEM_SET_NAME(_GIMP_ITEM(layer_id), layer_name); } gimp_image_insert_layer(nimage_id, layer_id, _GIMP_NULL_LAYER, p); #if !GIMP_CHECK_VERSION(2, 9, 0) GimpDrawable * drawable = gimp_drawable_get(layer_id); GimpPixelRgn region; gimp_pixel_rgn_init(®ion, drawable, 0, 0, drawable->width, drawable->height, true, true); image2uchar(img); gimp_pixel_rgn_set_rect(®ion, (guchar *)img.data(), 0, 0, img.width(), img.height()); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(layer_id, true); gimp_drawable_update(layer_id, 0, 0, drawable->width, drawable->height); gimp_drawable_detach(drawable); #else GeglBuffer * buffer = gimp_drawable_get_shadow_buffer(_GIMP_DRAWABLE(layer_id)); const char * const format = img.spectrum() == 1 ? "Y' float" : img.spectrum() == 2 ? "Y'A float" : img.spectrum() == 3 ? "R'G'B' float" : "R'G'B'A float"; (img /= 255).permute_axes("cxyz"); gegl_buffer_set(buffer, NULL, 0, babl_format(format), img.data(), 0); g_object_unref(buffer); gimp_drawable_merge_shadow(_GIMP_DRAWABLE(layer_id), true); gimp_drawable_update(_GIMP_DRAWABLE(layer_id), 0, 0, img.width(), img.height()); #endif img.assign(); } } gimp_display_new(nimage_id); gimp_image_undo_group_end(nimage_id); } } gimp_displays_flush(); } } // namespace GmicQtHost #if !GIMP_CHECK_VERSION(2, 99, 0) /* * 'Run' function, required by the GIMP plug-in API. */ void gmic_qt_run(const gchar * /* name */, gint /* nparams */, const GimpParam * param, gint * nreturn_vals, GimpParam ** return_vals) { #if GIMP_CHECK_VERSION(2, 9, 0) gegl_init(nullptr, nullptr); gimp_plugin_enable_precision(); #endif GmicQt::RunParameters pluginParameters; bool accepted = true; static GimpParam return_values[1]; *return_vals = return_values; *nreturn_vals = 1; return_values[0].type = GIMP_PDB_STATUS; int run_mode = (GimpRunMode)param[0].data.d_int32; switch (run_mode) { case GIMP_RUN_INTERACTIVE: gmic_qt_gimp_image_id = param[1].data.d_drawable; GmicQt::run(GmicQt::UserInterfaceMode::Full, // GmicQt::RunParameters(), // std::list(), // std::list(), // &accepted); break; case GIMP_RUN_WITH_LAST_VALS: gmic_qt_gimp_image_id = param[1].data.d_drawable; GmicQt::run(GmicQt::UserInterfaceMode::ProgressDialog, // GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution), // std::list(), // std::list(), // &accepted); break; case GIMP_RUN_NONINTERACTIVE: gmic_qt_gimp_image_id = param[1].data.d_drawable; pluginParameters.command = param[5].data.d_string; pluginParameters.inputMode = static_cast(param[3].data.d_int32 + (int)GmicQt::InputMode::NoInput); pluginParameters.outputMode = static_cast(param[4].data.d_int32 + (int)GmicQt::OutputMode::InPlace); run(GmicQt::UserInterfaceMode::Silent, // pluginParameters, // std::list(), // std::list(), // &accepted); break; } return_values[0].data.d_status = accepted ? GIMP_PDB_SUCCESS : GIMP_PDB_CANCEL; } void gmic_qt_query() { static const GimpParamDef args[] = {{GIMP_PDB_INT32, (gchar *)"run_mode", (gchar *)"Interactive, non-interactive"}, {GIMP_PDB_IMAGE, (gchar *)"image", (gchar *)"Input image"}, {GIMP_PDB_DRAWABLE, (gchar *)"drawable", (gchar *)"Input drawable (unused)"}, {GIMP_PDB_INT32, (gchar *)"input", (gchar *)"Input layers mode, when non-interactive" " (0=none, 1=active, 2=all, 3=active & below, 4=active & above, 5=all visibles, 6=all invisibles)"}, {GIMP_PDB_INT32, (gchar *)"output", (gchar *)"Output mode, when non-interactive " "(0=in place,1=new layers,2=new active layers,3=new image)"}, {GIMP_PDB_STRING, (gchar *)"command", (gchar *)"G'MIC command string, when non-interactive"}}; const char name[] = "plug-in-gmic-qt"; QByteArray blurb = QString("G'MIC-Qt (%1)").arg(GmicQt::gmicVersionString()).toLatin1(); QByteArray path("G'MIC-Qt..."); path.prepend("_"); gimp_install_procedure(name, // name blurb.constData(), // blurb blurb.constData(), // help "S\303\251bastien Fourey", // author "S\303\251bastien Fourey", // copyright "2017", // date path.constData(), // menu_path "RGB*, GRAY*", // image_types GIMP_PLUGIN, // type G_N_ELEMENTS(args), // nparams 0, // nreturn_vals args, // params nullptr); // return_vals gimp_plugin_menu_register(name, "/Filters"); } GimpPlugInInfo PLUG_IN_INFO = {nullptr, nullptr, gmic_qt_query, gmic_qt_run}; MAIN() #else static GList * gmic_qt_query(GimpPlugIn * plug_in) { return g_list_append(NULL, g_strdup(PLUG_IN_PROC)); } /* * 'Run' function, required by the GIMP plug-in API. */ #if !GIMP_CHECK_VERSION(2, 99, 7) static GimpValueArray * gmic_qt_run(GimpProcedure * procedure, GimpRunMode run_mode, GimpImage * image, GimpDrawable * drawable, const GimpValueArray * args, gpointer run_data) #else #if !GIMP_CHECK_VERSION(2, 99, 19) static GimpValueArray * gmic_qt_run(GimpProcedure * procedure, GimpRunMode run_mode, GimpImage * image, gint n_drawables, GimpDrawable ** drawables, const GimpValueArray * args, gpointer run_data) #else static GimpValueArray * gmic_qt_run(GimpProcedure * procedure, GimpRunMode run_mode, GimpImage * image, gint n_drawables, GimpDrawable ** drawables, GimpProcedureConfig *config, gpointer run_data) #endif #endif { gegl_init(NULL, NULL); // gimp_plugin_enable_precision(); // what is this? GmicQt::RunParameters pluginParameters; bool accepted = true; switch (run_mode) { case GIMP_RUN_INTERACTIVE: gmic_qt_gimp_image_id = image; GmicQt::run(GmicQt::UserInterfaceMode::Full, GmicQt::RunParameters(), // std::list(), // std::list(), // &accepted); break; case GIMP_RUN_WITH_LAST_VALS: gmic_qt_gimp_image_id = image; GmicQt::run(GmicQt::UserInterfaceMode::ProgressDialog, // GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution), // std::list(), // std::list(), // &accepted); break; case GIMP_RUN_NONINTERACTIVE: gmic_qt_gimp_image_id = image; #if !GIMP_CHECK_VERSION(2, 99, 19) pluginParameters.command = g_value_get_string(gimp_value_array_index(args, 2)); pluginParameters.inputMode = static_cast(g_value_get_int(gimp_value_array_index(args, 0)) + (int)GmicQt::InputMode::NoInput); pluginParameters.outputMode = static_cast(g_value_get_int(gimp_value_array_index(args, 1)) + (int)GmicQt::OutputMode::InPlace); #else char *command; int inputMode; int outputMode; g_object_get(config, "command", &command, "input", &inputMode, "output", &outputMode, NULL); pluginParameters.command = command; pluginParameters.inputMode = (GmicQt::InputMode)inputMode; pluginParameters.outputMode = (GmicQt::OutputMode)outputMode; g_free(command); #endif GmicQt::run(GmicQt::UserInterfaceMode::Silent, // pluginParameters, // std::list(), // std::list(), // &accepted); break; } return gimp_procedure_new_return_values(procedure, accepted ? GIMP_PDB_SUCCESS : GIMP_PDB_CANCEL, NULL); } static GimpProcedure * gmic_qt_create_procedure(GimpPlugIn * plug_in, const gchar * name) { GimpProcedure * procedure = NULL; if (strcmp(name, PLUG_IN_PROC) == 0) { procedure = gimp_image_procedure_new(plug_in, name, GIMP_PDB_PROC_TYPE_PLUGIN, gmic_qt_run, NULL, NULL); gimp_procedure_set_image_types(procedure, "RGB*, GRAY*"); QByteArray path("G'MIC-Qt..."); path.prepend("_"); gimp_procedure_set_menu_label(procedure, path.constData()); gimp_procedure_add_menu_path(procedure, "/Filters"); QByteArray blurb = QString("G'MIC-Qt (%1)").arg(GmicQt::gmicVersionString()).toLatin1(); gimp_procedure_set_documentation(procedure, blurb.constData(), // blurb blurb.constData(), // help name); // help_id gimp_procedure_set_attribution(procedure, "S\303\251bastien Fourey", // author "S\303\251bastien Fourey", // copyright "2017"); // date #if GIMP_CHECK_VERSION(2, 99, 19) gimp_procedure_add_int_argument(procedure, "input", // name "input", // nick "Input layers mode, when non-interactive (0=none, 1=active, 2=all, 3=active & below, 4=active & above, 5=all visibles, 6=all invisibles)", // blurb 0, // min 6, // max 0, // default G_PARAM_READWRITE); // flags gimp_procedure_add_int_argument(procedure, "output", // name "output", // nick "Output mode, when non-interactive (0=in place,1=new layers,2=new active layers,3=new image)", // blurb 0, // min 3, // max 0, // default G_PARAM_READWRITE); // flags gimp_procedure_add_string_argument(procedure, "command", // name "command", // nick "G'MIC command string, when non-interactive", // blurb "", // default G_PARAM_READWRITE); // flags #else GIMP_PROC_ARG_INT(procedure, "input", // name "input", // nick "Input layers mode, when non-interactive (0=none, 1=active, 2=all, 3=active & below, 4=active & above, 5=all visibles, 6=all invisibles)", // blurb 0, // min 6, // max 0, // default G_PARAM_READWRITE); // flags GIMP_PROC_ARG_INT(procedure, "output", // name "output", // nick "Output mode, when non-interactive (0=in place,1=new layers,2=new active layers,3=new image)", // blurb 0, // min 3, // max 0, // default G_PARAM_READWRITE); // flags GIMP_PROC_ARG_STRING(procedure, "command", // name "command", // nick "G'MIC command string, when non-interactive", // blurb "", // default G_PARAM_READWRITE); // flags #endif } return procedure; } #endif ================================================ FILE: src/Host/GmicQtHost.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file GmicQtHost.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_HOST_H #define GMIC_QT_HOST_H #include #include "GmicQt.h" namespace gmic_library { template struct gmic_image; template struct gmic_list; } // namespace gmic_library namespace GmicQtHost { extern const QString ApplicationName; extern const char * const ApplicationShortname; extern const bool DarkThemeIsDefault; /** * @brief Get the largest width and largest height among all the layers according to the input mode (\see GmicQt.h). * * @param[out] width * @param[out] height */ void getLayersExtent(int * width, int * height, GmicQt::InputMode); /** * @brief Get a list of (cropped) image layers from host software. * * Caution: returned images should contain "entire pixels" with respect to * to the normalized coordinates. Hence, integer coordinates should be computed * as (x,y,w,h) with : * x = static_cast(std::floor(x * input_image_width)); * w = std::min(input_image_width - x,static_cast(1+std::ceil(width * input_image_width))); * * @param[out] images list * @param[out] imageNames Per layer description strings (position, opacity, etc.) * @param x Top-left corner normalized x coordinate w.r.t. image/extends width (i.e., in [0,1]) * @param y Top-left corner normalized y coordinate w.r.t. image/extends width (i.e., in [0,1]) * @param width Normalized width of the layers w.r.t. image/extends width * @param height Normalized height of the layers w.r.t. image/extends height * @param mode Input mode */ void getCroppedImages(gmic_library::gmic_list & images, // gmic_library::gmic_list & imageNames, // double x, // double y, // double width, // double height, // GmicQt::InputMode mode); /** * @brief Send a list of new image layers to the host application according to an output mode (\see GmicQt.h) * * @param images List of layers to be sent to the host application. May be modified. * @param imageNames Layers labels * @param mode Output mode (\see GmicQt.h) */ void outputImages(gmic_library::gmic_list & images, const gmic_library::gmic_list & imageNames, GmicQt::OutputMode mode); /** * @brief Apply a color profile to a given image * * @param [in,out] images An image */ void applyColorProfile(gmic_library::gmic_image & images); /** * @brief Display a message in the host application. * This function is only used if the plugin is launched using the UserInterfaceMode::Silent mode. * If a given plugin implementation never calls the latter function, show_message() can do nothing! * * @param message A message to be displayed by the host application */ void showMessage(const char * message); } // namespace GmicQtHost #endif // GMIC_QT_HOST_H ================================================ FILE: src/Host/None/ImageDialog.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ImageDialog.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Host/None/ImageDialog.h" #include #include #include #include #include #include #include #include "Common.h" #include "JpegQualityDialog.h" #include "Settings.h" #include "gmic.h" namespace gmic_qt_standalone { ImageView::ImageView(QWidget * parent) : QWidget(parent) {} void ImageView::setImage(const gmic_library::gmic_image & image) { GmicQt::convertGmicImageToQImage(image, _image); setMinimumSize(std::min(640, image.width()), std::min(480, image.height())); } void ImageView::setImage(const QImage & image) { _image = image; setMinimumSize(std::min(640, image.width()), std::min(480, image.height())); } bool ImageView::save(const QString & filename, int quality) { QString ext = QFileInfo(filename).suffix().toLower(); if ((ext == "jpg" || ext == "jpeg") && (quality == ImageDialog::UNSPECIFIED_JPEG_QUALITY)) { quality = JpegQualityDialog::ask(dynamic_cast(parent()), -1); if (quality == ImageDialog::UNSPECIFIED_JPEG_QUALITY) { return false; } } if (!_image.save(filename, nullptr, quality)) { QMessageBox::critical(this, tr("Error"), tr("Could not write image file %1").arg(filename)); return false; } return true; } ImageDialog::ImageDialog(QWidget * parent) : QDialog(parent) { setWindowTitle(tr("G'MIC-Qt filter output")); _jpegQuality = UNSPECIFIED_JPEG_QUALITY; auto vbox = new QVBoxLayout(this); _tabWidget = new QTabWidget(this); vbox->addWidget(_tabWidget); _tabWidget->setElideMode(Qt::ElideRight); auto hbox = new QHBoxLayout; vbox->addLayout(hbox); _closeButton = new QPushButton(tr("Close")); connect(_closeButton, &QPushButton::clicked, this, &ImageDialog::onCloseClicked); hbox->addWidget(_closeButton); _saveButton = new QPushButton(tr("Save as...")); connect(_saveButton, &QPushButton::clicked, this, &ImageDialog::onSaveAs); hbox->addWidget(_saveButton); } void ImageDialog::addImage(const gmic_library::gmic_image & image, const QString & name) { auto view = new ImageView(_tabWidget); view->setImage(image); _tabWidget->addTab(view, name + "*"); _tabWidget->setCurrentIndex(_tabWidget->count() - 1); _savedTab.push_back(false); } const QImage & ImageDialog::currentImage() const { QWidget * widget = _tabWidget->currentWidget(); auto view = dynamic_cast(widget); Q_ASSERT_X(view, __FUNCTION__, "Widget is not an ImageView"); return view->image(); } int ImageDialog::currentImageIndex() const { return _tabWidget->currentIndex(); } void ImageDialog::supportedImageFormats(QStringList & extensions, QStringList & filters) { extensions.clear(); for (const auto & ext : QImageWriter::supportedImageFormats()) { extensions.push_back(QString::fromLatin1(ext).toLower()); } filters.clear(); for (const auto & extension : extensions) { QString filter = QString(tr("%1 file (*.%2 *.%3)")).arg(extension.toUpper()).arg(extension.toUpper()).arg(extension); if (extension == "png" || extension == "jpg" || extension == "jpeg") { filters.push_front(filter); } else { filters.push_back(filter); } } } void ImageDialog::setJPEGQuality(int q) { _jpegQuality = q; } void ImageDialog::onSaveAs() { QSettings settings; QString selectedFilter; selectedFilter = settings.value("Standalone/SaveAsSelectedFilter", QString()).toString(); QStringList extensions; QStringList filters; supportedImageFormats(extensions, filters); if (!filters.contains(selectedFilter)) { selectedFilter.clear(); } const QFileDialog::Options options = GmicQt::Settings::nativeFileDialogs() ? QFileDialog::Options() : QFileDialog::DontUseNativeDialog; QString filename = QFileDialog::getSaveFileName(this, tr("Save image as..."), QString(), filters.join(";;"), &selectedFilter, options); if (!filename.isEmpty()) { settings.setValue("Standalone/SaveAsSelectedFilter", selectedFilter); QString extension = selectedFilter.split("*").back(); extension.chop(1); if (!extensions.contains(QFileInfo(filename).suffix())) { filename += extension; } auto view = dynamic_cast(_tabWidget->currentWidget()); int index = _tabWidget->currentIndex(); if (view) { if (view->save(filename, _jpegQuality)) { _tabWidget->setTabText(index, QFileInfo(filename).fileName()); _tabWidget->setTabToolTip(index, QFileInfo(filename).filePath()); } } } } void ImageDialog::onCloseClicked(bool) { done(0); } void ImageView::paintEvent(QPaintEvent *) { QPainter p(this); QImage displayed; if ((static_cast(_image.width()) / static_cast(_image.height())) > (static_cast(width()) / static_cast(height()))) { displayed = _image.scaledToWidth(width()); p.drawImage(0, (height() - displayed.height()) / 2, displayed); } else { displayed = _image.scaledToHeight(height()); p.drawImage((width() - displayed.width()) / 2, 0, displayed); } } const QImage & ImageView::image() const { return _image; } } // namespace gmic_qt_standalone ================================================ FILE: src/Host/None/ImageDialog.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ImageDialog.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_IMAGE_DIALOG_H #define GMIC_QT_IMAGE_DIALOG_H #include #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "GmicQt.h" namespace gmic_library { template struct gmic_image; } namespace gmic_qt_standalone { class ImageView : public QWidget { public: ImageView(QWidget * parent); void setImage(const gmic_library::gmic_image & image); void setImage(const QImage & image); bool save(const QString & filename, int quality); void paintEvent(QPaintEvent *) override; const QImage & image() const; private: QImage _image; }; class ImageDialog : public QDialog { Q_OBJECT public: ImageDialog(QWidget * parent); void addImage(const gmic_library::gmic_image & image, const QString & name); const QImage & currentImage() const; int currentImageIndex() const; static void supportedImageFormats(QStringList & extensions, QStringList &filters); void setJPEGQuality(int); static const int UNSPECIFIED_JPEG_QUALITY = -1; public slots: void onSaveAs(); void onCloseClicked(bool); private: QPushButton * _closeButton; QPushButton * _saveButton; QTabWidget * _tabWidget; QVector _savedTab; int _jpegQuality; }; } // namespace gmic_qt_standalone #endif ================================================ FILE: src/Host/None/JpegQualityDialog.cpp ================================================ #include "JpegQualityDialog.h" #include #include "Settings.h" #include "ui_jpegqualitydialog.h" int JpegQualityDialog::_permanentQuality = -1; int JpegQualityDialog::_selectedQuality = -1; #define JPEG_QUALITY_KEY "Config/host_standalone/DefaultJpegQuality" JpegQualityDialog::JpegQualityDialog(QWidget * parent) : QDialog(parent), ui(new Ui::JpegQualityDialog) { ui->setupUi(this); setWindowTitle(tr("JPEG Quality")); ui->slider->setRange(0, 100); ui->spinBox->setRange(0, 100); if (_selectedQuality == -1) { _selectedQuality = QSettings().value(JPEG_QUALITY_KEY, 85).toInt(); } ui->slider->setValue(_selectedQuality); ui->spinBox->setValue(_selectedQuality); ui->pbOk->setDefault(true); connect(ui->slider, &QSlider::valueChanged, ui->spinBox, &QSpinBox::setValue); connect(ui->spinBox, QOverload::of(&QSpinBox::valueChanged), ui->slider, &QSlider::setValue); connect(ui->pbOk, &QPushButton::clicked, [this]() { _selectedQuality = ui->spinBox->value(); QSettings().setValue(JPEG_QUALITY_KEY, _selectedQuality); }); connect(ui->pbOk, &QPushButton::clicked, this, &QDialog::accept); connect(ui->pbCancel, &QPushButton::clicked, this, &QDialog::reject); connect(ui->makePermanent, &QCheckBox::toggled, this, &JpegQualityDialog::makePermanent); if (GmicQt::Settings::darkThemeEnabled()) { QPalette p = ui->makePermanent->palette(); p.setColor(QPalette::Text, GmicQt::Settings::CheckBoxTextColor); p.setColor(QPalette::Base, GmicQt::Settings::CheckBoxBaseColor); ui->makePermanent->setPalette(p); } } JpegQualityDialog::~JpegQualityDialog() { delete ui; } int JpegQualityDialog::quality() const { return ui->slider->value(); } void JpegQualityDialog::setQuality(int q) { if (q != -1) { ui->slider->setValue(q); ui->spinBox->setValue(q); } } int JpegQualityDialog::ask(QWidget * parent, int value) { if (_permanentQuality != -1) { return _permanentQuality; } JpegQualityDialog * dialog = new JpegQualityDialog(parent); dialog->setQuality(value); int result = -1; if (dialog->exec() == QDialog::Accepted) { result = dialog->quality(); } dialog->deleteLater(); return result; } void JpegQualityDialog::closeEvent(QCloseEvent * event) { return QDialog::closeEvent(event); } void JpegQualityDialog::makePermanent(bool on) { if (on) { _permanentQuality = ui->spinBox->value(); } else { _permanentQuality = -1; } } ================================================ FILE: src/Host/None/JpegQualityDialog.h ================================================ #ifndef JPEGQUALITYDIALOG_H #define JPEGQUALITYDIALOG_H #include namespace Ui { class JpegQualityDialog; } class JpegQualityDialog : public QDialog { Q_OBJECT public: explicit JpegQualityDialog(QWidget * parent); ~JpegQualityDialog() override; int quality() const; void setQuality(int quality); static int ask(QWidget * parent, int value = -1); protected: void closeEvent(QCloseEvent *) override; private slots: void makePermanent(bool); private: Ui::JpegQualityDialog * ui; static int _permanentQuality; static int _selectedQuality; }; #endif // JPEGQUALITYDIALOG_H ================================================ FILE: src/Host/None/host_none.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file host_none.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "GmicQt.h" #include "Host/GmicQtHost.h" #include "Host/None/ImageDialog.h" #include "Settings.h" #include "gmic.h" #define STRINGIFY(X) #X #define XSTRINGIFY(X) STRINGIFY(X) namespace gmic_qt_standalone { QVector input_images; QVector current_image_filenames; QVector input_image_filenames; QString output_image_filename; int jpeg_quality = ImageDialog::UNSPECIFIED_JPEG_QUALITY; QWidget * visibleMainWindow() { for (QWidget * w : QApplication::topLevelWidgets()) { if ((dynamic_cast(w) != nullptr) && (w->isVisible())) { return w; } } return nullptr; } void askForInputImageFilename() { QWidget * mainWidget = visibleMainWindow(); Q_ASSERT_X(mainWidget, __PRETTY_FUNCTION__, "No top level window yet"); QStringList extensions; QStringList filters; gmic_qt_standalone::ImageDialog::supportedImageFormats(extensions, filters); const QFileDialog::Options options = GmicQt::Settings::nativeFileDialogs() ? QFileDialog::Options() : QFileDialog::DontUseNativeDialog; QString filename = QFileDialog::getOpenFileName(mainWidget, QObject::tr("Select an image to open..."), ".", filters.join(";;"), nullptr, options); input_images.resize(1); current_image_filenames.resize(1); if (!filename.isEmpty() && QFileInfo(filename).isReadable() && input_images.first().load(filename)) { input_images.first() = input_images.first().convertToFormat(QImage::Format_ARGB32); current_image_filenames.first() = QFileInfo(filename).fileName(); } else { if (!filename.isEmpty()) { QMessageBox::warning(mainWidget, QObject::tr("Error"), QObject::tr("Could not open file.")); } input_images.first().load(":/resources/gmicky.png"); input_images.first() = input_images.first().convertToFormat(QImage::Format_ARGB32); current_image_filenames.first() = QObject::tr("Default image"); } } const QImage & transparentImage() { static QImage image; if (image.isNull()) { image = QImage(640, 480, QImage::Format_ARGB32); image.fill(QColor(0, 0, 0, 0)); } return image; } QString imageName(const char * text) { QString result; const char * start = std::strstr(text, "name("); if (start) { const char * ps = start + 5; unsigned int level = 1; while (*ps && level) { if (*ps == '(') { ++level; } else if (*ps == ')') { --level; } ++ps; } if (!level || (*(ps - 1) == ')')) { result = QString::fromUtf8(start + 5, (unsigned int)(ps - start - 5)); result.chop(1); for (QChar & c : result) { if (c == char(21)) { c = '('; } else if (c == char(22)) { c = ')'; } } } } return result; } std::string basename(const std::string & text) { std::string::size_type position = text.rfind('/'); if (position == std::string::npos) { return text; } else { return text.substr(position + 1, text.size() - (position + 1)); } } const QImage & inputImage(int n) { if (n < gmic_qt_standalone::input_images.size() && !gmic_qt_standalone::input_images[n].isNull()) { return gmic_qt_standalone::input_images[n]; } else { return gmic_qt_standalone::transparentImage(); } } } // namespace gmic_qt_standalone namespace GmicQtHost { const QString ApplicationName; const char * const ApplicationShortname = XSTRINGIFY(GMIC_HOST); const bool DarkThemeIsDefault = true; void getLayersExtent(int * width, int * height, GmicQt::InputMode) { if (gmic_qt_standalone::input_images.isEmpty()) { if (gmic_qt_standalone::visibleMainWindow()) { gmic_qt_standalone::askForInputImageFilename(); *width = gmic_qt_standalone::input_images.first().width(); *height = gmic_qt_standalone::input_images.first().height(); } else { *width = 640; *height = 480; } } else { *width = gmic_qt_standalone::input_images.first().width(); *height = gmic_qt_standalone::input_images.first().height(); } } void getCroppedImages(gmic_library::gmic_list & images, gmic_library::gmic_list & imageNames, double x, double y, double width, double height, GmicQt::InputMode mode) { const bool entireImage = x < 0 && y < 0 && width < 0 && height < 0; if (entireImage) { x = 0.0; y = 0.0; width = 1.0; height = 1.0; } if (mode == GmicQt::InputMode::NoInput) { images.assign(); imageNames.assign(); return; } images.assign(gmic_qt_standalone::input_images.size()); imageNames.assign(gmic_qt_standalone::input_images.size()); for (int i = 0; i < gmic_qt_standalone::input_images.size(); ++i) { QString noParenthesisName(gmic_qt_standalone::current_image_filenames[i]); noParenthesisName.replace(QChar('('), QChar(21)).replace(QChar(')'), QChar(22)); QString name = QString("pos(0,0),name(%1)").arg(noParenthesisName); QByteArray ba = name.toUtf8(); gmic_library::gmic_image::string(ba.constData()).move_to(imageNames[i]); const QImage & input_image = gmic_qt_standalone::inputImage(i); const int ix = static_cast(entireImage ? 0 : std::floor(x * input_image.width())); const int iy = static_cast(entireImage ? 0 : std::floor(y * input_image.height())); const int iw = entireImage ? input_image.width() : std::min(input_image.width() - ix, static_cast(1 + std::ceil(width * input_image.width()))); const int ih = entireImage ? input_image.height() : std::min(input_image.height() - iy, static_cast(1 + std::ceil(height * input_image.height()))); GmicQt::convertQImageToGmicImage(input_image.copy(ix, iy, iw, ih), images[i]); } } void outputImages(gmic_library::gmic_list & images, const gmic_library::gmic_list & imageNames, GmicQt::OutputMode mode) { if (images.size() > 0) { if (gmic_qt_standalone::output_image_filename.isEmpty()) { QWidgetList widgets = QApplication::topLevelWidgets(); if (widgets.size()) { auto dialog = new gmic_qt_standalone::ImageDialog(widgets.at(0)); dialog->setJPEGQuality(gmic_qt_standalone::jpeg_quality); for (unsigned int i = 0; i < images.size(); ++i) { QString name = gmic_qt_standalone::imageName((const char *)imageNames[i]); dialog->addImage(images[i], name); } dialog->exec(); gmic_qt_standalone::input_images.resize(1); gmic_qt_standalone::input_images.first() = dialog->currentImage(); gmic_qt_standalone::current_image_filenames.resize(1); gmic_qt_standalone::current_image_filenames.first() = gmic_qt_standalone::imageName((const char *)imageNames[dialog->currentImageIndex()]); delete dialog; } } else { gmic_qt_standalone::input_images.resize(images.size()); gmic_qt_standalone::current_image_filenames.resize(images.size()); const unsigned int layerLimit = gmic_qt_standalone::output_image_filename.contains("%l") ? images.size() : 1; for (unsigned int layer = 0; layer < layerLimit; ++layer) { GmicQt::convertGmicImageToQImage(images[layer], gmic_qt_standalone::input_images[layer]); QString outputFilename = gmic_qt_standalone::output_image_filename; if (outputFilename.contains("%b")) { const QString basename = QFileInfo(gmic_qt_standalone::input_image_filenames.first()).completeBaseName(); outputFilename.replace("%b", basename); } if (outputFilename.contains("%f")) { const QString filename = QFileInfo(gmic_qt_standalone::input_image_filenames.first()).fileName(); outputFilename.replace("%f", filename); } outputFilename.replace("%l", QString::number(layer)); std::cout << "[gmic_qt] Writing output file for layer " << layer << ": " << outputFilename.toStdString() << std::endl; gmic_qt_standalone::input_images[layer].save(outputFilename, nullptr, gmic_qt_standalone::jpeg_quality); gmic_qt_standalone::current_image_filenames[layer] = gmic_qt_standalone::imageName((const char *)imageNames[layer]); } } } unused(mode); } void showMessage(const char * message) { std::cout << message << std::endl; } void applyColorProfile(gmic_library::gmic_image &) {} } // namespace GmicQtHost void usage(const std::string & argv0) { std::cout << "Usage: " << argv0 << " [OPTIONS ...] [INPUT_FILES ...]" << std::endl; std::cout << "Launch the G'MIC-Qt plugin as a standalone application.\n" "\n" "Options:\n" " -h --help : Display this help\n" " -o --output FILE : Write output image to FILE\n" " %b will be replaced by the input file basename (i.e. without path and extension)\n" " %f will be replaced by the input filename (without path)\n" " %l will be replaced by the layer number (0 is top layer)\n" " -q --quality NNN : JPEG quality of output file(s) in 0..100\n" " -r --repeat : Use last applied filter and parameters\n" " -p --path FILTER_PATH | FILTER_NAME : Select filter\n" " e.g. \"/Black & White/Charcoal\"\n" " \"Charcoal\"\n" " -c --command \"GMIC COMMAND\" : Run gmic command. If a filter name or path is provided,\n" " then parameters are completed using filter's defaults.\n" " -a --apply : Apply filter or command and quit (requires one of -r -p -c)\n" " -R --reapply-first : Launch GUI once for first input file, then apply selected filter\n" " and parameters to all other files\n" " -l --layers : Treat multiple input files as layers of a single image (top first)\n" " --show-last : Print last applied plugin parameters\n" " --show-last-after : Print last applied plugin parameters (after filter execution)\n"; } namespace { inline bool loadImage(QImage & image, const QString & filename, int argc, char * argv[]) { QGuiApplication app(argc, argv); return image.load(filename); } } // namespace int main(int argc, char * argv[]) { TIMING; int narg = 1; bool repeat = false; bool apply = false; bool reapplyFirst = false; bool printLast = false; bool printLastAfter = false; bool layers = false; std::string filterPath; std::string command; QStringList filenames; while (narg < argc) { QString arg = QString::fromLocal8Bit(argv[narg]); if ((arg == "--help") || (arg == "-h")) { usage(gmic_qt_standalone::basename(argv[0])); return EXIT_SUCCESS; } else if ((arg == "--apply") || (arg == "-a")) { apply = true; } else if ((arg == "--layers") || (arg == "-l")) { layers = true; } else if ((arg == "--reapply-first") || (arg == "-R")) { reapplyFirst = true; } else if ((arg == "--output") || (arg == "-o")) { if (narg < argc - 1) { ++narg; gmic_qt_standalone::output_image_filename = argv[narg]; } else { std::cerr << "Missing filename for option " << arg.toStdString() << std::endl; return EXIT_FAILURE; } } else if ((arg == "--quality") || (arg == "-q")) { if (narg < argc - 1) { ++narg; gmic_qt_standalone::jpeg_quality = std::max(0, std::min(100, atoi(argv[narg]))); } else { std::cerr << "Missing argument for option " << arg.toStdString() << std::endl; return EXIT_FAILURE; } } else if ((arg == "--repeat") || (arg == "-r")) { repeat = true; } else if ((arg == "--command") || (arg == "-c")) { if (narg < argc - 1) { ++narg; command = argv[narg]; } else { std::cerr << "Missing command for option " << arg.toStdString() << std::endl; return EXIT_FAILURE; } } else if ((arg == "--path") || (arg == "-p")) { if (narg < argc - 1) { ++narg; filterPath = argv[narg]; } else { std::cerr << "Missing path for option " << arg.toStdString() << std::endl; return EXIT_FAILURE; } } else if (arg == "--show-last") { printLast = true; } else if (arg == "--show-last-after") { printLastAfter = true; } else if (arg.startsWith("--") || arg.startsWith("-")) { std::cerr << "Unrecognized option " << arg.toStdString() << std::endl; return EXIT_FAILURE; } else { while (narg < argc) { QString filename = QString::fromLocal8Bit(argv[narg]); if (QFileInfo(filename).isReadable()) { filenames.push_back(filename); } else { std::cerr << "File cannot be read: " << argv[narg] << std::endl; return EXIT_FAILURE; } ++narg; } } ++narg; } if (apply && (command.empty() && filterPath.empty() && !repeat)) { std::cerr << "Option --apply requires one of --repeat -path --command" << std::endl; return EXIT_FAILURE; } if (printLast || printLastAfter) { GmicQt::ReturnedRunParametersFlag flag = printLast ? GmicQt::ReturnedRunParametersFlag::BeforeFilterExecution : GmicQt::ReturnedRunParametersFlag::AfterFilterExecution; GmicQt::RunParameters parameters = GmicQt::lastAppliedFilterRunParameters(flag); std::cout << "Path: " << parameters.filterPath << std::endl; std::cout << "Name: " << parameters.filterName() << std::endl; std::cout << "Command: " << parameters.command << std::endl; std::cout << "InputMode: " << static_cast(parameters.inputMode) << std::endl; std::cout << "OutputMode: " << static_cast(parameters.outputMode) << std::endl; return EXIT_SUCCESS; } std::list disabledInputModes; disabledInputModes.push_back(GmicQt::InputMode::NoInput); if (layers && (filenames.size() > 1)) { disabledInputModes.push_back(GmicQt::InputMode::Active); } else { disabledInputModes.push_back(GmicQt::InputMode::All); } disabledInputModes.push_back(GmicQt::InputMode::ActiveAndBelow); disabledInputModes.push_back(GmicQt::InputMode::ActiveAndAbove); disabledInputModes.push_back(GmicQt::InputMode::AllVisible); disabledInputModes.push_back(GmicQt::InputMode::AllInvisible); std::list disabledOutputModes; // disabledOutputModes.push_back(GmicQt::OutputMode::InPlace); disabledOutputModes.push_back(GmicQt::OutputMode::NewImage); disabledOutputModes.push_back(GmicQt::OutputMode::NewLayers); disabledOutputModes.push_back(GmicQt::OutputMode::NewActiveLayers); GmicQt::RunParameters parameters; if (repeat) { parameters = GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution); std::cout << "[gmic_qt] Running with last parameters..." << std::endl; std::cout << "Command: " << parameters.command << std::endl; std::cout << "Path: " << parameters.filterPath << std::endl; std::cout << "Input Mode: " << (int)parameters.inputMode << std::endl; std::cout << "Output Mode: " << (int)parameters.outputMode << std::endl; } else { parameters.filterPath = filterPath; parameters.command = command; } if (filenames.isEmpty()) { return GmicQt::run(GmicQt::UserInterfaceMode::Full, parameters, disabledInputModes, disabledOutputModes); } bool firstLaunch = true; if (layers) { gmic_qt_standalone::input_images.resize(filenames.size()); gmic_qt_standalone::current_image_filenames.resize(filenames.size()); gmic_qt_standalone::input_image_filenames.resize(filenames.size()); int n = 0; for (const QString & filename : filenames) { if (loadImage(gmic_qt_standalone::input_images[n], filename, argc, argv)) { gmic_qt_standalone::input_images[n] = gmic_qt_standalone::input_images[n].convertToFormat(QImage::Format_ARGB32); gmic_qt_standalone::current_image_filenames[n] = QFileInfo(filename).fileName(); gmic_qt_standalone::input_image_filenames[n] = gmic_qt_standalone::current_image_filenames[n]; } else { std::cerr << "Could not open image file " << filename.toStdString() << std::endl; } ++n; } GmicQt::UserInterfaceMode uiMode = apply ? GmicQt::UserInterfaceMode::ProgressDialog : GmicQt::UserInterfaceMode::Full; int status = GmicQt::run(uiMode, parameters, disabledInputModes, disabledOutputModes); if (status) { std::cerr << "GmicQt::launchPlugin() returned status " << status << std::endl; return status; } } else { for (const QString & filename : filenames) { gmic_qt_standalone::input_images.resize(1); gmic_qt_standalone::current_image_filenames.resize(1); gmic_qt_standalone::input_image_filenames.resize(1); if (loadImage(gmic_qt_standalone::input_images.first(), filename, argc, argv)) { gmic_qt_standalone::input_images.first() = gmic_qt_standalone::input_images.first().convertToFormat(QImage::Format_ARGB32); gmic_qt_standalone::current_image_filenames.first() = QFileInfo(filename).fileName(); gmic_qt_standalone::input_image_filenames.first() = gmic_qt_standalone::current_image_filenames.first(); GmicQt::UserInterfaceMode uiMode; if (apply || (reapplyFirst && !firstLaunch)) { uiMode = GmicQt::UserInterfaceMode::ProgressDialog; } else { uiMode = GmicQt::UserInterfaceMode::Full; } if (reapplyFirst && !firstLaunch) { parameters = GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::BeforeFilterExecution); } int status = GmicQt::run(uiMode, parameters, disabledInputModes, disabledOutputModes); if (status) { std::cerr << "GmicQt::launchPlugin() returned status " << status << std::endl; return status; } firstLaunch = false; } else { std::cerr << "Could not open image file " << filename.toStdString() << std::endl; } } } return EXIT_SUCCESS; } ================================================ FILE: src/Host/None/jpegqualitydialog.ui ================================================ JpegQualityDialog 0 0 420 159 Dialog JPEG Quality 0 Qt::Horizontal 100 0 0 Always use this quality for this execution of G'MIC-Qt Qt::Horizontal 40 20 &Cancel &Ok Qt::Horizontal 40 20 ================================================ FILE: src/Host/PaintDotNet/host_paintdotnet.cpp ================================================ /* * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * Copyright (C) 2018, 2019, 2020, 2022 Nicholas Hayes * * G'MIC-Qt 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. * * G'MIC-Qt 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 #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Host/GmicQtHost.h" #include "MainWindow.h" #include "GmicQt.h" #include "gmic.h" #include struct KernelHandleCloser { void operator()(void* pointer) { if (pointer) { CloseHandle(pointer); } } }; struct MappedFileViewCloser { void operator()(void* pointer) { if (pointer) { UnmapViewOfFile(pointer); } } }; typedef std::unique_ptr ScopedFileMapping; typedef std::unique_ptr ScopedFileMappingView; namespace host_paintdotnet { QString pipeName; std::vector sharedMemory; } namespace GmicQtHost { const QString ApplicationName = QString("Paint.NET"); const char * const ApplicationShortname = GMIC_QT_XSTRINGIFY(GMIC_HOST); const bool DarkThemeIsDefault = true; } namespace { class ScopedCreateFile : public std::unique_ptr { public: ScopedCreateFile(HANDLE handle) : std::unique_ptr(handle == INVALID_HANDLE_VALUE ? nullptr : handle) { } }; BOOL ReadFileBlocking(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPOVERLAPPED lpOverlapped) { BYTE* bufferStart = static_cast(lpBuffer); DWORD totalBytesRead = 0; do { if (!ReadFile(hFile, bufferStart + totalBytesRead, nNumberOfBytesToRead - totalBytesRead, nullptr, lpOverlapped)) { DWORD error = GetLastError(); switch (error) { case ERROR_SUCCESS: case ERROR_IO_PENDING: break; default: return FALSE; } } DWORD bytesRead = 0; if (GetOverlappedResult(hFile, lpOverlapped, &bytesRead, TRUE)) { ResetEvent(lpOverlapped->hEvent); } else { return FALSE; } totalBytesRead += bytesRead; } while (totalBytesRead < nNumberOfBytesToRead); return TRUE; } BOOL WriteFileBlocking(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPOVERLAPPED lpOverlapped) { const BYTE* bufferStart = static_cast(lpBuffer); DWORD totalBytesWritten = 0; do { if (!WriteFile(hFile, bufferStart + totalBytesWritten, nNumberOfBytesToWrite - totalBytesWritten, nullptr, lpOverlapped)) { DWORD error = GetLastError(); switch (error) { case ERROR_SUCCESS: case ERROR_IO_PENDING: break; default: return FALSE; } } DWORD bytesWritten = 0; if (GetOverlappedResult(hFile, lpOverlapped, &bytesWritten, TRUE)) { ResetEvent(lpOverlapped->hEvent); } else { return FALSE; } totalBytesWritten += bytesWritten; } while (totalBytesWritten < nNumberOfBytesToWrite); return TRUE; } QByteArray SendMessageSynchronously(QByteArray message) { QByteArray reply; ScopedCreateFile handle(CreateFileW(reinterpret_cast(host_paintdotnet::pipeName.utf16()), GENERIC_READ | GENERIC_WRITE, 0, nullptr, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, nullptr)); if (!handle) { qWarning() << "Could not open the Paint.NET pipe handle. GetLastError=" << GetLastError(); return reply; } OVERLAPPED overlapped = {}; overlapped.hEvent = CreateEventW(nullptr, TRUE, FALSE, nullptr); if (!overlapped.hEvent) { qWarning() << "Could not create the overlapped.hEvent handle. GetLastError=" << GetLastError(); return reply; } // Write the message. const int messageLength = message.length(); if (!WriteFileBlocking(handle.get(), &messageLength, sizeof(int), &overlapped)) { qWarning() << "WriteFileBlocking(1) failed GetLastError=" << GetLastError(); CloseHandle(overlapped.hEvent); return reply; } if (!WriteFileBlocking(handle.get(), message.data(), static_cast(messageLength), &overlapped)) { qWarning() << "WriteFileBlocking(2) failed GetLastError=" << GetLastError(); CloseHandle(overlapped.hEvent); return reply; } // Read the reply. int bytesRemaining = 0; if (!ReadFileBlocking(handle.get(), &bytesRemaining, sizeof(int), &overlapped)) { qWarning() << "ReadFileBlocking(1) failed GetLastError=" << GetLastError(); CloseHandle(overlapped.hEvent); return reply; } if (bytesRemaining > 0) { reply.resize(bytesRemaining); if (!ReadFileBlocking(handle.get(), reply.data(), static_cast(bytesRemaining), &overlapped)) { qWarning() << "ReadFileBlocking(2) failed GetLastError=" << GetLastError(); CloseHandle(overlapped.hEvent); return reply; } } // Send a message to Paint.NET that all data has been read. static const char done[] = "done"; constexpr DWORD doneLength = sizeof(done) / sizeof(done[0]); WriteFileBlocking(handle.get(), done, doneLength, &overlapped); CloseHandle(overlapped.hEvent); return reply; } inline quint8 Float2Uint8Clamped(const float& value) { return value < 0.0f ? 0 : value > 255.0f ? 255 : static_cast(value); } } namespace GmicQtHost { void getLayersExtent(int * width, int * height, GmicQt::InputMode mode) { if (mode == GmicQt::InputMode::NoInput) { *width = 0; *height = 0; return; } QString getMaxLayerSizeCommand = QString("command=gmic_qt_get_max_layer_size\nmode=%1\n").arg((int)mode); QString reply = QString::fromUtf8(SendMessageSynchronously(getMaxLayerSizeCommand.toUtf8())); if (reply.length() > 0) { QStringList items = reply.split(',', QT_SKIP_EMPTY_PARTS); if (items.length() == 2) { *width = items[0].toInt(); *height = items[1].toInt(); } } } void getCroppedImages(gmic_list & images, gmic_list & imageNames, double x, double y, double width, double height, GmicQt::InputMode mode) { if (mode == GmicQt::InputMode::NoInput) { images.assign(); imageNames.assign(); return; } const bool entireImage = x < 0 && y < 0 && width < 0 && height < 0; if (entireImage) { x = 0.0; y = 0.0; width = 1.0; height = 1.0; } QString getImagesCommand = QString("command=gmic_qt_get_cropped_images\nmode=%1\ncroprect=%2,%3,%4,%5\n").arg((int)mode).arg(x).arg(y).arg(width).arg(height); QString reply = QString::fromUtf8(SendMessageSynchronously(getImagesCommand.toUtf8())); QStringList layers = reply.split('\n', QT_SKIP_EMPTY_PARTS); const int layerCount = layers.length(); images.assign(layerCount); imageNames.assign(layerCount); for (int i = 0; i < layerCount; ++i) { QString layerName = QString("layer%1").arg(i); QByteArray layerNameBytes = layerName.toUtf8(); gmic_image::string(layerNameBytes.constData()).move_to(imageNames[i]); } for (int i = 0; i < layerCount; ++i) { QStringList layerData = layers[i].split(',', QT_SKIP_EMPTY_PARTS); if (layerData.length() != 4) { return; } LPCWSTR fileMappingName = reinterpret_cast(layerData[0].utf16()); const qint32 width = layerData[1].toInt(); const qint32 height = layerData[2].toInt(); const qint32 stride = layerData[3].toInt(); ScopedFileMapping fileMappingObject(OpenFileMappingW(FILE_MAP_READ, FALSE, fileMappingName)); if (fileMappingObject) { const size_t imageDataSize = static_cast(stride) * static_cast(height); ScopedFileMappingView mappedData(MapViewOfFile(fileMappingObject.get(), FILE_MAP_READ, 0, 0, imageDataSize)); if (mappedData) { const quint8* scan0 = static_cast(mappedData.get()); gmic_library::gmic_image& dest = images[i]; dest.assign(width, height, 1, 4); float* dstR = dest.data(0, 0, 0, 0); float* dstG = dest.data(0, 0, 0, 1); float* dstB = dest.data(0, 0, 0, 2); float* dstA = dest.data(0, 0, 0, 3); for (qint32 y = 0; y < height; ++y) { const quint8* src = scan0 + (y * stride); for (qint32 x = 0; x < width; ++x) { *dstB++ = static_cast(src[0]); *dstG++ = static_cast(src[1]); *dstR++ = static_cast(src[2]); *dstA++ = static_cast(src[3]); src += 4; } } } else { qWarning() << "MapViewOfFile failed GetLastError=" << GetLastError(); return; } } else { qWarning() << "OpenFileMappingW failed GetLastError=" << GetLastError(); return; } } SendMessageSynchronously("command=gmic_qt_release_shared_memory"); } void outputImages(gmic_list & images, const gmic_list & imageNames, GmicQt::OutputMode mode) { unused(imageNames); if (images.size() > 0) { for (size_t i = 0; i < host_paintdotnet::sharedMemory.size(); ++i) { host_paintdotnet::sharedMemory[i].reset(); } host_paintdotnet::sharedMemory.clear(); QString outputImagesCommand = QString("command=gmic_qt_output_images\nmode=%1\n").arg((int)mode); for (size_t i = 0; i < images.size(); ++i) { QString mappingName = QString("pdn_%1").arg(QUuid::createUuid().toString(QUuid::StringFormat::WithoutBraces)); const gmic_library::gmic_image& out = images[i]; const int width = out.width(); const int height = out.height(); const qint64 imageSizeInBytes = static_cast(width) * static_cast(height) * 4; const DWORD capacityHigh = static_cast((imageSizeInBytes >> 32) & 0xFFFFFFFF); const DWORD capacityLow = static_cast(imageSizeInBytes & 0x00000000FFFFFFFF); ScopedFileMapping fileMappingObject(CreateFileMappingW(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, capacityHigh, capacityLow, reinterpret_cast(mappingName.utf16()))); if (fileMappingObject) { ScopedFileMappingView mappedData(MapViewOfFile(fileMappingObject.get(), FILE_MAP_ALL_ACCESS, 0, 0, static_cast(imageSizeInBytes))); if (mappedData) { quint8* scan0 = static_cast(mappedData.get()); const int stride = width * 4; if (out.spectrum() == 3) { const float* srcR = out.data(0, 0, 0, 0); const float* srcG = out.data(0, 0, 0, 1); const float* srcB = out.data(0, 0, 0, 2); for (int y = 0; y < height; ++y) { quint8* dst = scan0 + (y * stride); for (int x = 0; x < width; ++x) { dst[0] = Float2Uint8Clamped(*srcB++); dst[1] = Float2Uint8Clamped(*srcG++); dst[2] = Float2Uint8Clamped(*srcR++); dst[3] = 255; dst += 4; } } } else if (out.spectrum() == 4) { const float* srcR = out.data(0, 0, 0, 0); const float* srcG = out.data(0, 0, 0, 1); const float* srcB = out.data(0, 0, 0, 2); const float* srcA = out.data(0, 0, 0, 3); for (int y = 0; y < height; ++y) { quint8* dst = scan0 + (y * stride); for (int x = 0; x < width; ++x) { dst[0] = Float2Uint8Clamped(*srcB++); dst[1] = Float2Uint8Clamped(*srcG++); dst[2] = Float2Uint8Clamped(*srcR++); dst[3] = Float2Uint8Clamped(*srcA++); dst += 4; } } } else if (out.spectrum() == 2) { const float* srcGray = out.data(0, 0, 0, 0); const float* srcAlpha = out.data(0, 0, 0, 1); for (int y = 0; y < height; ++y) { quint8* dst = scan0 + (y * stride); for (int x = 0; x < width; ++x) { dst[0] = dst[1] = dst[2] = Float2Uint8Clamped(*srcGray++); dst[3] = Float2Uint8Clamped(*srcAlpha++); dst += 4; } } } else if (out.spectrum() == 1) { const float* srcGray = out.data(0, 0, 0, 0); for (int y = 0; y < height; ++y) { quint8* dst = scan0 + (y * stride); for (int x = 0; x < width; ++x) { dst[0] = dst[1] = dst[2] = Float2Uint8Clamped(*srcGray++); dst[3] = 255; dst += 4; } } } else { qWarning() << "The image must have between 1 and 4 channels. Actual value=" << out.spectrum(); return; } // Manually release the mapped data to ensue it is committed before the parent file mapping handle // is moved into the host_paintdotnet::sharedMemory vector (which invalidates the previous handle). mappedData.reset(); outputImagesCommand += "layer=" + mappingName + "," + QString::number(width) + "," + QString::number(height) + "," + QString::number(stride) + "\n"; host_paintdotnet::sharedMemory.push_back(std::move(fileMappingObject)); } else { qWarning() << "MapViewOfFile failed GetLastError=" << GetLastError(); return; } } else { qWarning() << "CreateFileMappingW failed GetLastError=" << GetLastError(); return; } } SendMessageSynchronously(outputImagesCommand.toUtf8()); } } void applyColorProfile(gmic_library::gmic_image & images) { unused(images); } void showMessage(const char * message) { unused(message); } } // namespace GmicQtHost int main(int argc, char *argv[]) { bool useLastParameters = false; if (argc >= 3 && strcmp(argv[1], ".PDN") == 0) { host_paintdotnet::pipeName = argv[2]; if (argc == 4) { useLastParameters = strcmp(argv[3], "reapply") == 0; } } else { return 1; } if (host_paintdotnet::pipeName.isEmpty()) { return 2; } int exitCode = 0; std::list disabledInputModes; disabledInputModes.push_back(GmicQt::InputMode::NoInput); // disabledInputModes.push_back(GmicQt::InputMode::Active); // disabledInputModes.push_back(GmicQt::InputMode::All); disabledInputModes.push_back(GmicQt::InputMode::ActiveAndBelow); disabledInputModes.push_back(GmicQt::InputMode::ActiveAndAbove); disabledInputModes.push_back(GmicQt::InputMode::AllVisible); disabledInputModes.push_back(GmicQt::InputMode::AllInvisible); std::list disabledOutputModes; // disabledOutputModes.push_back(GmicQt::OutputMode::InPlace); disabledOutputModes.push_back(GmicQt::OutputMode::NewImage); disabledOutputModes.push_back(GmicQt::OutputMode::NewLayers); disabledOutputModes.push_back(GmicQt::OutputMode::NewActiveLayers); bool dialogAccepted = true; if (useLastParameters) { GmicQt::RunParameters parameters; parameters = GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution); exitCode = GmicQt::run(GmicQt::UserInterfaceMode::ProgressDialog, parameters, disabledInputModes, disabledOutputModes, &dialogAccepted); } else { exitCode = GmicQt::run(GmicQt::UserInterfaceMode::Full, GmicQt::RunParameters(), disabledInputModes, disabledOutputModes, &dialogAccepted); } for (size_t i = 0; i < host_paintdotnet::sharedMemory.size(); ++i) { host_paintdotnet::sharedMemory[i].reset(); } host_paintdotnet::sharedMemory.clear(); if (dialogAccepted) { // Send the G'MIC command name to Paint.NET. // It will be added to the image file names when writing the G'MIC images to an external file. GmicQt::RunParameters parameters = GmicQt::lastAppliedFilterRunParameters(GmicQt::ReturnedRunParametersFlag::AfterFilterExecution); QString gmicCommandName; // A G'MIC command consists of a command name that can optionally be followed // by a space and the command arguments. // If a command does not take any arguments only the command name will be present. // // According to the G'MIC Language Reference command names are restricted to a // subset of 7-bit US-ASCII: letters, numbers and underscores. // These restrictions make the command name safe to use in an OS file name. // See https://gmic.eu/reference/adding_custom_commands.html for more information. size_t firstSpaceIndex = parameters.command.find_first_of(' '); if (firstSpaceIndex != std::string::npos) { gmicCommandName = QString::fromStdString(parameters.command.substr(0, firstSpaceIndex)); } else { gmicCommandName = QString::fromStdString(parameters.command); } QString message = QString("command=gmic_qt_set_gmic_command_name\n%1\n").arg(gmicCommandName); SendMessageSynchronously(message.toUtf8()); } else { exitCode = 3; } return exitCode; } ================================================ FILE: src/HtmlTranslator.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file HtmlTranslator.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "HtmlTranslator.h" #include #include #include "Common.h" #include "gmic.h" namespace GmicQt { QTextDocument HtmlTranslator::_document; QString HtmlTranslator::removeTags(QString str) { return str.remove(QRegularExpression("<[^>]*>")); } // TODO : enum param force + enum param translate QString HtmlTranslator::html2txt(const QString & str, bool force) { if (force || hasHtmlEntities(str)) { _document.setHtml(str); return fromUtf8Escapes(_document.toPlainText()); } return fromUtf8Escapes(str); } bool HtmlTranslator::hasHtmlEntities(const QString & str) { return str.contains(QRegularExpression("&[a-zA-Z]+;")) || str.contains(QRegularExpression("&#x?[0-9A-Fa-f]+;")) || str.contains(QRegularExpression("|<[a-zA-Z]*/>")); } QString HtmlTranslator::fromUtf8Escapes(const QString & str) { if (str.isEmpty()) { return str; } QByteArray ba = str.toUtf8(); gmic_library::cimg::strunescape(ba.data()); return QString::fromUtf8(ba); } } // namespace GmicQt ================================================ FILE: src/HtmlTranslator.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file HtmlTranslator.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_HTMLTRANSLATOR_H #define GMIC_QT_HTMLTRANSLATOR_H #include #include namespace GmicQt { class HtmlTranslator { public: static QString removeTags(QString str); static QString html2txt(const QString & str, bool force = false); static bool hasHtmlEntities(const QString & str); static QString fromUtf8Escapes(const QString & str); private: static QTextDocument _document; }; } // namespace GmicQt #endif // GMIC_QT_HTMLTRANSLATOR_H ================================================ FILE: src/IconLoader.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file IconLoader.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "IconLoader.h" #include #include namespace GmicQt { QIcon IconLoader::getForDarkTheme(const char * name) { QPixmap pixmap(darkIconPath(name)); QIcon icon(pixmap); icon.addPixmap(darkerPixmap(pixmap), QIcon::Disabled, QIcon::Off); return icon; } QIcon IconLoader::load(const char * name) { if (Settings::darkThemeEnabled()) { return getForDarkTheme(name); } else { return QIcon(QString(":/icons/%1.png").arg(name)); } } QIcon IconLoader::loadNoDarkened(const char * name) { if (Settings::darkThemeEnabled()) { return QIcon(darkIconPath(name)); } else { return QIcon(QString(":/icons/%1.png").arg(name)); } } QPixmap IconLoader::darkerPixmap(const QPixmap & pixmap) { QImage image = pixmap.toImage().convertToFormat(QImage::Format_ARGB32); for (int row = 0; row < image.height(); ++row) { auto pixel = reinterpret_cast(image.scanLine(row)); const QRgb * limit = pixel + image.width(); while (pixel != limit) { QRgb grayed; if (qAlpha(*pixel) != 0) { grayed = qRgba((int)(0.4 * qRed(*pixel)), (int)(0.4 * qGreen(*pixel)), (int)(0.4 * qBlue(*pixel)), (int)(0.4 * qAlpha((*pixel)))); } else { grayed = qRgba(0, 0, 0, 0); } *pixel++ = grayed; } } return QPixmap::fromImage(image); } QString IconLoader::darkIconPath(const char * name) { QString darkPath = QString(":/icons/dark/%1.png").arg(name); if (QFileInfo(darkPath).exists()) { return darkPath; } return QString(":/icons/%1.png").arg(name); // Fallback } } // namespace GmicQt ================================================ FILE: src/IconLoader.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file IconLoader.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_ICONLOADER_H #define GMIC_QT_ICONLOADER_H #include #include #include "Settings.h" class QString; namespace GmicQt { class IconLoader { public: IconLoader() = delete; static QIcon getForDarkTheme(const char * name); static QIcon load(const char * name); static QIcon loadNoDarkened(const char * name); private: static QPixmap darkerPixmap(const QPixmap & pixmap); static QString darkIconPath(const char * name); }; } // namespace GmicQt #endif // GMIC_QT_ICONLOADER_H ================================================ FILE: src/ImageTools.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ImageTools.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "ImageTools.h" #include #include #include #include "GmicStdlib.h" #include "gmic.h" /* * Part of this code is much inspired by the original source code * of the GTK version of the gmic plug-in for GIMP by David Tschumperl\'e. */ namespace GmicQt { void buildPreviewImage(const gmic_library::gmic_list & images, gmic_library::gmic_image & result) { gmic_library::gmic_list preview_input_images; if (images.size() > 0) { preview_input_images.push_back(images[0]); int spectrum = 0; cimglist_for(preview_input_images, l) { spectrum = std::max(spectrum, preview_input_images[l].spectrum()); } spectrum += (spectrum == 1 || spectrum == 3); cimglist_for(preview_input_images, l) { calibrateImage(preview_input_images[l], spectrum, true); } result.swap(preview_input_images.front()); } else { result.assign(); } } bool checkImageSpectrumAtMost4(const gmic_library::gmic_list & images, unsigned int & index) { for (unsigned int i = 0; i < images.size(); ++i) { if (images[i].spectrum() > 4) { index = i; return false; } } return true; } template bool hasAlphaChannel(const gmic_library::gmic_image & image) { return image.spectrum() == 2 || image.spectrum() == 4; } template bool hasAlphaChannel(const gmic_library::gmic_image &); template bool hasAlphaChannel(const gmic_library::gmic_image &); } // namespace GmicQt ================================================ FILE: src/ImageTools.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ImageTools.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_IMAGETOOLS_H #define GMIC_QT_IMAGETOOLS_H #include "Common.h" #include "GmicQt.h" namespace gmic_library { template struct gmic_image; template struct gmic_list; } // namespace gmic_library namespace GmicQt { bool checkImageSpectrumAtMost4(const gmic_library::gmic_list & images, unsigned int & index); void buildPreviewImage(const gmic_library::gmic_list & images, gmic_library::gmic_image & result); template bool hasAlphaChannel(const gmic_library::gmic_image & image); } // namespace GmicQt #endif // GMIC_QT_IMAGETOOLS_H ================================================ FILE: src/InputOutputState.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file InputOutputState.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "InputOutputState.h" #include #include namespace { void filterDeprecatedInputMode(GmicQt::InputMode & mode) { switch (mode) { case GmicQt::InputMode::AllDesc_DEPRECATED: case GmicQt::InputMode::AllVisiblesDesc_DEPRECATED: case GmicQt::InputMode::AllInvisiblesDesc_DEPRECATED: mode = GmicQt::InputMode::Unspecified; break; default: break; } } } // namespace namespace GmicQt { const InputOutputState InputOutputState::Default(DefaultInputMode, DefaultOutputMode); const InputOutputState InputOutputState::Unspecified(InputMode::Unspecified, OutputMode::Unspecified); InputOutputState::InputOutputState() : inputMode(InputMode::Unspecified), outputMode(OutputMode::Unspecified) {} InputOutputState::InputOutputState(InputMode inputMode, OutputMode outputMode) : inputMode(inputMode), outputMode(outputMode) {} bool InputOutputState::operator==(const InputOutputState & other) const { return inputMode == other.inputMode && outputMode == other.outputMode; } bool InputOutputState::operator!=(const InputOutputState & other) const { return inputMode != other.inputMode || outputMode != other.outputMode; } bool InputOutputState::isDefault() const { return (inputMode == DefaultInputMode) && (outputMode == DefaultOutputMode); } void InputOutputState::toJSONObject(QJsonObject & object) const { object = QJsonObject(); if (inputMode != InputMode::Unspecified) { object.insert("InputLayers", static_cast(inputMode)); } if (outputMode != DefaultOutputMode) { object.insert("OutputMode", static_cast(outputMode)); } } InputOutputState InputOutputState::fromJSONObject(const QJsonObject & object) { InputOutputState state; state.inputMode = static_cast(object.value("InputLayers").toInt(static_cast(InputMode::Unspecified))); filterDeprecatedInputMode(state.inputMode); state.outputMode = static_cast(object.value("OutputMode").toInt(static_cast(OutputMode::Unspecified))); return state; } } // namespace GmicQt ================================================ FILE: src/InputOutputState.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file InputOutputState.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_INPUTOUTPUTSTATE_H #define GMIC_QT_INPUTOUTPUTSTATE_H #include "GmicQt.h" class QJsonObject; class QString; namespace GmicQt { struct InputOutputState { InputMode inputMode; OutputMode outputMode; InputOutputState(); InputOutputState(InputMode, OutputMode); bool isDefault() const; void toJSONObject(QJsonObject &) const; static InputOutputState fromJSONObject(const QJsonObject &); static const InputOutputState Default; static const InputOutputState Unspecified; bool operator==(const InputOutputState & other) const; bool operator!=(const InputOutputState & other) const; }; } // namespace GmicQt #endif // GMIC_QT_INPUTOUTPUTSTATE_H ================================================ FILE: src/KeypointList.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file KeypointList.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "KeypointList.h" #include #include namespace GmicQt { const float KeypointList::Keypoint::DefaultRadius = 9.0f; KeypointList::KeypointList() = default; void KeypointList::add(const KeypointList::Keypoint & keypoint) { _keypoints.push_back(keypoint); } bool KeypointList::isEmpty() { return _keypoints.empty(); } void KeypointList::clear() { _keypoints.clear(); } QPointF KeypointList::position(int n) const { const Keypoint & kp = _keypoints[n]; return {static_cast(kp.x), static_cast(kp.y)}; } QColor KeypointList::color(int n) const { return _keypoints[n].color; } bool KeypointList::isRemovable(int n) const { return _keypoints[n].removable; } KeypointList::Keypoint::Keypoint(float x, float y, QColor color, bool removable, bool burst, float radius, bool keepOpacityWhenSelected) : x(x), y(y), color(color), removable(removable), burst(burst), radius(radius), keepOpacityWhenSelected(keepOpacityWhenSelected) { } KeypointList::Keypoint::Keypoint(QPointF point, QColor color, bool removable, bool burst, float radius, bool keepOpacityWhenSelected) : x((float)point.x()), y((float)point.y()), color(color), removable(removable), burst(burst), radius(radius), keepOpacityWhenSelected(keepOpacityWhenSelected) { } KeypointList::Keypoint::Keypoint(QColor color, bool removable, bool burst, float radius, bool keepOpacityWhenSelected) : color(color), removable(removable), burst(burst), radius(radius), keepOpacityWhenSelected(keepOpacityWhenSelected) { setNaN(); } bool KeypointList::Keypoint::isNaN() const { if (sizeof(float) == 4) { unsigned int ix, iy; std::memcpy(&ix, &x, sizeof(float)); std::memcpy(&iy, &y, sizeof(float)); return ((ix & 0x7fffffff) > 0x7f800000) || ((iy & 0x7fffffff) > 0x7f800000); } #ifdef isnan return (isnan(x) || isnan(y)); #else return !(x == x) || !(y == y); #endif } KeypointList::Keypoint & KeypointList::Keypoint::setNaN() { #ifdef NAN x = y = (float)NAN; #else const double nanValue = -std::sqrt(-1.0); x = y = (float)nanValue; #endif return *this; } } // namespace GmicQt ================================================ FILE: src/KeypointList.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file KeypointList.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_KEYPOINTLIST_H #define GMIC_QT_KEYPOINTLIST_H #include #include #include #include #include #include #include "Common.h" namespace GmicQt { class KeypointList { public: struct Keypoint { float x; float y; QColor color; /* A negative alpha means "Keep opacity while moved" */ bool removable; bool burst; float radius; /* A negative value is a percentage of the preview diagonal */ bool keepOpacityWhenSelected; Keypoint(float x, float y, QColor color, bool removable, bool burst, float radius, bool keepOpacityWhenSelected); Keypoint(QPointF point, QColor color, bool removable, bool burst, float radius, bool keepOpacityWhenSelected); Keypoint(QColor color, bool removable, bool burst, float radius, bool keepOpacityWhenSelected); bool isNaN() const; Keypoint & setNaN(); inline void setPosition(float x, float y); inline void setPosition(const QPointF & p); static const float DefaultRadius; inline int actualRadiusFromPreviewSize(const QSize & size) const; }; KeypointList(); void add(const Keypoint & keypoint); bool isEmpty(); void clear(); QPointF position(int n) const; QColor color(int n) const; bool isRemovable(int n) const; typedef std::deque::iterator iterator; typedef std::deque::const_iterator const_iterator; typedef std::deque::reverse_iterator reverse_iterator; typedef std::deque::const_reverse_iterator const_reverse_iterator; typedef std::deque::size_type size_type; typedef std::deque::reference reference; typedef std::deque::const_reference const_reference; size_type size() const { return _keypoints.size(); } reference operator[](size_type index) { return _keypoints[index]; } const_reference operator[](size_type index) const { return _keypoints[index]; } void pop_front() { _keypoints.pop_front(); } const Keypoint & front() { return _keypoints.front(); } const Keypoint & front() const { return _keypoints.front(); } iterator begin() { return _keypoints.begin(); } iterator end() { return _keypoints.end(); } const_iterator cbegin() const { return _keypoints.cbegin(); } const_iterator cend() const { return _keypoints.cend(); } reverse_iterator rbegin() { return _keypoints.rbegin(); } reverse_iterator rend() { return _keypoints.rend(); } const_reverse_iterator rbegin() const { return _keypoints.crbegin(); } const_reverse_iterator rend() const { return _keypoints.crend(); } const_reverse_iterator crbegin() const { return _keypoints.crbegin(); } const_reverse_iterator crend() const { return _keypoints.crend(); } private: std::deque _keypoints; }; void KeypointList::Keypoint::setPosition(float x, float y) { KeypointList::Keypoint::x = x; KeypointList::Keypoint::y = y; } void KeypointList::Keypoint::setPosition(const QPointF & point) { KeypointList::Keypoint::x = (float)point.x(); KeypointList::Keypoint::y = (float)point.y(); } int KeypointList::Keypoint::actualRadiusFromPreviewSize(const QSize & size) const { if (radius >= 0) { return static_cast(radius); } else { return std::max(2, static_cast(std::round(-static_cast(radius) * (std::sqrt(size.width() * size.width() + size.height() * size.height())) / 100.0))); } } } // namespace GmicQt #endif // GMIC_QT_KEYPOINTLIST_H ================================================ FILE: src/LanguageSettings.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LanguageSettings.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "LanguageSettings.h" #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "Logger.h" #include "Settings.h" namespace GmicQt { const QMap & LanguageSettings::availableLanguages() { static QMap result; if (result.isEmpty()) { result["en"] = QString("English"); result["cs"] = QString::fromUtf8("\xc4\x8c\x65\xc5\xa1\x74\x69\x6e\x61"); result["de"] = QString("Deutsch"); result["es"] = QString::fromUtf8("Espa\xc3\xb1ol"); result["fr"] = QString::fromUtf8("Fran\xc3\xa7" "ais"); result["id"] = QString("bahasa Indonesia"); result["it"] = QString("Italiano"); result["ja"] = QString::fromUtf8("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"); result["nl"] = QString("Dutch"); result["pl"] = QString::fromUtf8("J\xc4\x99zyk polski"); result["pt"] = QString::fromUtf8("Portugu\xc3\xaas"); result["ru"] = QString::fromUtf8("\xd0\xa0\xd1\x83\xd1\x81\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9"); result["sv"] = QString::fromUtf8("Svenska"); result["uk"] = QString::fromUtf8("\xd0\xa3\xd0\xba\xd1\x80\xd0\xb0\xd1\x97\xd0\xbd\xd1\x81\xd1\x8c\xd0\xba\xd0\xb0"); result["zh"] = QString::fromUtf8("\xe7\xae\x80\xe5\x8c\x96\xe5\xad\x97"); result["zh_tw"] = QString::fromUtf8("\xe6\xad\xa3\xe9\xab\x94\xe5\xad\x97\x2f\xe7\xb9\x81\xe9\xab\x94\xe5\xad\x97"); } return result; } QString LanguageSettings::configuredTranslator() { QString code = QSettings().value(LANGUAGE_CODE_KEY, QString()).toString(); if (code.isEmpty()) { code = systemDefaultAndAvailableLanguageCode(); if (code.isEmpty()) { code = "en"; } } else { QMap map = availableLanguages(); if (map.find(code) == map.end()) { code = "en"; } } return code; } QString LanguageSettings::systemDefaultAndAvailableLanguageCode() { QList languages = QLocale().uiLanguages(); if (!languages.isEmpty()) { QString lang = languages.front().split("-").front(); QMap map = availableLanguages(); // Check for traditional Chinese (following https://stackoverflow.com/a/4894634) if ((lang == "zh") && (languages.front().endsWith("TW") || languages.front().endsWith("HK"))) { return QString("zh_tw"); } if (map.find(lang) != map.end()) { return lang; } } return QString(); } // Translate according to current locale or configured language void LanguageSettings::installTranslators() { QString lang = LanguageSettings::configuredTranslator(); if (!lang.isEmpty() && (lang != "en")) { installQtTranslator(lang); installTranslator(QString(":/translations/%1.qm").arg(lang)); if (QSettings().value(ENABLE_FILTER_TRANSLATION, false).toBool()) { installTranslator(QString(":/translations/filters/%1.qm").arg(lang)); } } } bool LanguageSettings::filterTranslationAvailable(const QString & lang) { return QFileInfo(QString(":/translations/filters/%1.qm").arg(lang)).isReadable(); } void LanguageSettings::installTranslator(const QString & qmPath) { if (!QFileInfo(qmPath).isReadable()) { return; } auto translator = new QTranslator(qApp); if (translator->load(qmPath)) { if (!QApplication::installTranslator(translator)) { Logger::error(QObject::tr("Could not install translator for file %1").arg(qmPath)); } } else { Logger::error(QObject::tr("Could not load translation file %1").arg(qmPath)); translator->deleteLater(); } } void LanguageSettings::installQtTranslator(const QString & lang) { auto qtTranslator = new QTranslator(qApp); #if QT_VERSION_GTE(6,0,0) QString path = QLibraryInfo::path(QLibraryInfo::TranslationsPath); #else QString path = QLibraryInfo::location(QLibraryInfo::TranslationsPath); #endif if (qtTranslator->load(QString("qt_%1").arg(lang), path)) { QApplication::installTranslator(qtTranslator); } else { qtTranslator->deleteLater(); } } } // namespace GmicQt ================================================ FILE: src/LanguageSettings.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LanguageSettings.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_LANGUAGESETTINGS_H #define GMIC_QT_LANGUAGESETTINGS_H #include #include namespace GmicQt { class LanguageSettings { public: LanguageSettings() = delete; static const QMap & availableLanguages(); static QString configuredTranslator(); static QString systemDefaultAndAvailableLanguageCode(); static void installTranslators(); static bool filterTranslationAvailable(const QString & lang); private: static void installTranslator(const QString & qmPath); static void installQtTranslator(const QString & lang); }; } // namespace GmicQt #endif // GMIC_QT_LANGUAGESETTINGS_H ================================================ FILE: src/LayersExtentProxy.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LayersExtentProxy.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "LayersExtentProxy.h" #include #include "Common.h" #include "Host/GmicQtHost.h" namespace GmicQt { int LayersExtentProxy::_width = -1; int LayersExtentProxy::_height = -1; InputMode LayersExtentProxy::_inputMode = InputMode::All; QSize LayersExtentProxy::getExtent(InputMode mode) { QSize size; getExtent(mode, size.rwidth(), size.rheight()); return size; } void LayersExtentProxy::getExtent(InputMode mode, int & width, int & height) { if (mode != _inputMode || _width == -1 || _height == -1) { GmicQtHost::getLayersExtent(&_width, &_height, mode); width = _width; height = _height; } else { width = _width; height = _height; } _inputMode = mode; } void LayersExtentProxy::clear() { _width = _height = -1; } } // namespace GmicQt ================================================ FILE: src/LayersExtentProxy.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LayersExtentProxy.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_LAYERS_EXTENT_PROXY_H #define GMIC_QT_LAYERS_EXTENT_PROXY_H #include #include "GmicQt.h" namespace GmicQt { class LayersExtentProxy { public: static void getExtent(InputMode mode, int & width, int & height); static QSize getExtent(InputMode mode); static void clear(); private: LayersExtentProxy() = delete; static int _width; static int _height; static InputMode _inputMode; }; } // namespace GmicQt #endif // GMIC_QT_LAYERS_EXTENT_PROXY_H ================================================ FILE: src/Logger.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Logger.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Logger.h" #include #include #include #include "Common.h" #include "GmicQt.h" #include "Settings.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { FILE * Logger::_logFile = nullptr; Logger::Mode Logger::_currentMode = Logger::Mode::StandardOutput; void Logger::setMode(const OutputMessageMode mode) { if ((mode == OutputMessageMode::VerboseLogFile) || (mode == OutputMessageMode::VeryVerboseLogFile) || (mode == OutputMessageMode::DebugLogFile)) { setMode(Logger::Mode::File); } else { setMode(Logger::Mode::StandardOutput); } } void Logger::setMode(const Logger::Mode mode) { if (mode == _currentMode) { return; } if (mode == Mode::StandardOutput) { if (_logFile) { fclose(_logFile); } _logFile = nullptr; gmic_library::cimg::output(stdout); } else { QString filename = QString("%1gmic_qt_log").arg(gmicConfigPath(true)); _logFile = fopen(filename.toLocal8Bit().constData(), "a"); gmic_library::cimg::output(_logFile ? _logFile : stdout); } _currentMode = mode; } void Logger::clear() { Mode mode = _currentMode; if (mode == Mode::File) { setMode(Mode::StandardOutput); } QString filename = QString("%1gmic_qt_log").arg(gmicConfigPath(true)); FILE * dummyFile = fopen(filename.toLocal8Bit().constData(), "w"); if (dummyFile) { fclose(dummyFile); } setMode(mode); } void Logger::log(const QString & message, bool space) { log(message, QString(), space); } void Logger::log(const QString & message, const QString & hint, bool space) { if (Settings::outputMessageMode() == OutputMessageMode::Quiet) { return; } QString text = message; while (!text.isEmpty() && text[text.size() - 1].isSpace()) { text.chop(1); } QStringList lines = text.split("\n", QT_KEEP_EMPTY_PARTS); QString prefix = QString("[%1]").arg(pluginCodeName()); prefix += hint.isEmpty() ? " " : QString("./%1/ ").arg(hint); if (space) { std::fprintf(gmic_library::cimg::output(), "\n"); } for (const QString & line : lines) { std::fprintf(gmic_library::cimg::output(), "%s\n", (prefix + line).toLocal8Bit().constData()); } std::fflush(gmic_library::cimg::output()); } void Logger::error(const QString & message, bool space) { log(message, "error", space); } void Logger::warning(const QString & message, bool space) { log(message, "warning", space); } void Logger::note(const QString & message, bool space) { log(message, "note", space); } } // namespace GmicQt ================================================ FILE: src/Logger.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Logger.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_LOGGER_H #define GMIC_QT_LOGGER_H #include #include "GmicQt.h" class QString; namespace GmicQt { class Logger { public: enum class Mode { StandardOutput, File }; static void setMode(const Mode mode); static void setMode(const OutputMessageMode mode); static void clear(); static void close(); static void log(const QString & message, const QString & hint, bool space = false); static void error(const QString & message, bool space = false); static void warning(const QString & message, bool space = false); static void note(const QString & message, bool space = false); static void log(const QString & message, bool space = false); Logger() = delete; private: static FILE * _logFile; static Mode _currentMode; }; } // namespace GmicQt #endif // GMIC_QT_LOGGER_H ================================================ FILE: src/MainWindow.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file MainWindow.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "MainWindow.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "CroppedActiveLayerProxy.h" #include "CroppedImageListProxy.h" #include "DialogSettings.h" #include "FilterGuiDynamismCache.h" #include "FilterSelector/FavesModelReader.h" #include "FilterSelector/FiltersPresenter.h" #include "FilterTextTranslator.h" #include "Globals.h" #include "GmicStdlib.h" #include "HtmlTranslator.h" #include "IconLoader.h" #include "LayersExtentProxy.h" #include "Logger.h" #include "Misc.h" #include "ParametersCache.h" #include "PersistentMemory.h" #include "Settings.h" #include "Updater.h" #include "Utils.h" #include "Widgets/VisibleTagSelector.h" #include "ui_mainwindow.h" #include "gmic.h" namespace { QString appendShortcutText(const QString & text, const QKeySequence & key) { if (text.isRightToLeft()) { return QString("(%2) %1").arg(text).arg(key.toString()); } else { return QString("%1 (%2)").arg(text).arg(key.toString()); } } } // namespace namespace GmicQt { bool MainWindow::_isAccepted = false; // // TODO : Handle window maximization properly (Windows as well as some Linux desktops) // MainWindow::MainWindow(QWidget * parent) : QMainWindow(parent), ui(new Ui::MainWindow) { TIMING; ui->setupUi(this); TIMING; _messageTimerID = 0; _gtkFavesShouldBeImported = false; _lastExecutionOK = true; // Overwritten by loadSettings() _expandCollapseIcon = nullptr; _newSession = true; // Overwritten by loadSettings() setWindowTitle(pluginFullName()); QStringList tsp = QIcon::themeSearchPaths(); tsp.append(QString("/usr/share/icons/gnome")); QIcon::setThemeSearchPaths(tsp); _filterUpdateWidgets = {ui->previewWidget, ui->zoomLevelSelector, ui->filtersView, ui->filterParams, ui->tbUpdateFilters, ui->pbFullscreen, ui->pbSettings, ui->pbOk, ui->pbApply, ui->pbClose, ui->tbResetParameters, ui->tbCopyCommand, ui->searchField, ui->cbPreview, ui->tbAddFave, ui->tbRemoveFave, ui->tbRenameFave, ui->tbExpandCollapse, ui->tbSelectionMode, ui->tbRandomizeParameters}; ui->tbAddFave->setToolTip(tr("Add fave")); ui->tbResetParameters->setToolTip(tr("Reset parameters to default values")); ui->tbResetParameters->setVisible(false); ui->tbRandomizeParameters->setToolTip(tr("Randomize parameters")); ui->tbRandomizeParameters->setVisible(false); QShortcut * copyShortcut = new QShortcut(QKeySequence::Copy, this); copyShortcut->setContext(Qt::ApplicationShortcut); connect(copyShortcut, &QShortcut::activated, [this] { ui->tbCopyCommand->animateClick(); }); ui->tbCopyCommand->setToolTip(appendShortcutText(tr("Copy G'MIC command to clipboard"), copyShortcut->key())); ui->tbCopyCommand->setVisible(false); QShortcut * closeShortcut = new QShortcut(QKeySequence::Close, this); closeShortcut->setContext(Qt::ApplicationShortcut); connect(closeShortcut, &QShortcut::activated, this, &MainWindow::close); QShortcut * previewTypeShortcut = new QShortcut(QKeySequence("Ctrl+Shift+P"), this); previewTypeShortcut->setContext(Qt::ApplicationShortcut); connect(previewTypeShortcut, &QShortcut::activated, this, &MainWindow::switchPreviewType); ui->tbRenameFave->setToolTip(tr("Rename fave")); ui->tbRenameFave->setEnabled(false); ui->tbRemoveFave->setToolTip(tr("Remove fave")); ui->tbRemoveFave->setEnabled(false); ui->pbFullscreen->setCheckable(true); ui->tbExpandCollapse->setToolTip(tr("Expand/Collapse all")); ui->logosLabel->setToolTip(tr("G'MIC (https://gmic.eu)
" "GREYC (https://www.greyc.fr)
" "CNRS (https://www.cnrs.fr)
" "Normandy University (https://www.unicaen.fr)
" "Ensicaen (https://www.ensicaen.fr)")); ui->logosLabel->setPixmap(QPixmap(":resources/logos.png")); ui->tbSelectionMode->setToolTip(tr("Selection mode")); ui->tbSelectionMode->setCheckable(true); ui->filterName->setTextFormat(Qt::RichText); ui->filterName->setVisible(false); ui->progressInfoWidget->hide(); ui->messageLabel->setText(QString()); ui->messageLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); ui->rightMessageLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); ui->filterParams->setNoFilter(); _pendingActionAfterCurrentProcessing = ProcessingAction::NoAction; ui->inOutSelector->disable(); ui->splitter->setChildrenCollapsible(false); ui->zoomLevelSelector->setPreviewWidget(ui->previewWidget); auto searchAction = new QAction(this); searchAction->setShortcut(QKeySequence::Find); searchAction->setShortcutContext(Qt::ApplicationShortcut); connect(searchAction, &QAction::triggered, ui->searchField, QOverload<>::of(&SearchFieldWidget::setFocus)); addAction(searchAction); auto togglePreviewAction = new QAction(this); togglePreviewAction->setShortcut(QKeySequence("Ctrl+P")); togglePreviewAction->setShortcutContext(Qt::ApplicationShortcut); connect(togglePreviewAction, &QAction::triggered, ui->cbPreview, &QCheckBox::toggle); addAction(togglePreviewAction); searchAction = new QAction(this); searchAction->setShortcut(QKeySequence("/")); searchAction->setShortcutContext(Qt::ApplicationShortcut); connect(searchAction, &QAction::triggered, ui->searchField, QOverload<>::of(&SearchFieldWidget::setFocus)); addAction(searchAction); { QKeySequence f5("F5"); QKeySequence ctrlR("Ctrl+R"); QString updateText = tr("Update filters"); if (updateText.isRightToLeft()) { updateText = QString("(%2 / %3) %1").arg(updateText).arg(f5.toString()).arg(ctrlR.toString()); } else { updateText = QString("%1 (%2 / %3)").arg(updateText).arg(ctrlR.toString()).arg(f5.toString()); } QShortcut * updateShortcutF5 = new QShortcut(QKeySequence("F5"), this); updateShortcutF5->setContext(Qt::ApplicationShortcut); QShortcut * updateShortcutCtrlR = new QShortcut(QKeySequence("Ctrl+R"), this); updateShortcutCtrlR->setContext(Qt::ApplicationShortcut); connect(updateShortcutF5, &QShortcut::activated, [this]() { ui->tbUpdateFilters->animateClick(); }); connect(updateShortcutCtrlR, &QShortcut::activated, [this]() { ui->tbUpdateFilters->animateClick(); }); ui->tbUpdateFilters->setToolTip(updateText); } ui->splitter->setHandleWidth(6); ui->verticalSplitter->setHandleWidth(6); ui->verticalSplitter->setStretchFactor(0, 5); ui->verticalSplitter->setStretchFactor(0, 1); if (!ui->inOutSelector->hasActiveControls()) { ui->vSplitterLine->hide(); ui->inOutSelector->hide(); } QPalette p = QGuiApplication::palette(); Settings::UnselectedFilterTextColor = p.color(QPalette::Disabled, QPalette::WindowText); _filtersPresenter = new FiltersPresenter(this); _filtersPresenter->setFiltersView(ui->filtersView); _filtersPresenter->setSearchField(ui->searchField); ui->progressInfoWidget->setGmicProcessor(&_processor); loadSettings(); ParametersCache::load(!_newSession); FilterGuiDynamismCache::load(); setIcons(); QAction * escAction = new QAction(this); escAction->setShortcut(QKeySequence(Qt::Key_Escape)); escAction->setShortcutContext(Qt::ApplicationShortcut); connect(escAction, &QAction::triggered, this, &MainWindow::onEscapeKeyPressed); addAction(escAction); CroppedImageListProxy::clear(); CroppedActiveLayerProxy::clear(); LayersExtentProxy::clear(); QSize layersExtent = LayersExtentProxy::getExtent(ui->inOutSelector->inputMode()); ui->previewWidget->setFullImageSize(layersExtent); _lastPreviewKeypointBurstUpdateTime = 0; _isAccepted = false; ui->tbTags->setToolTip(tr("Manage visible tags\n(Right-click on a fave or a filter to set/remove tags)")); _visibleTagSelector = new VisibleTagSelector(this); _visibleTagSelector->setToolButton(ui->tbTags); _visibleTagSelector->updateColors(); _filtersPresenter->setVisibleTagSelector(_visibleTagSelector); _forceQuitText = tr("Force &quit"); ui->pbCancel->setEnabled(false); ui->cbPreviewType->addItem(tr("Full"), int(PreviewWidget::PreviewType::Full)); ui->cbPreviewType->addItem(tr("Forward Horizontal"), int(PreviewWidget::PreviewType::ForwardHorizontal)); ui->cbPreviewType->addItem(tr("Forward Vertical"), int(PreviewWidget::PreviewType::ForwardVertical)); ui->cbPreviewType->addItem(tr("Backward Horizontal"), int(PreviewWidget::PreviewType::BackwardHorizontal)); ui->cbPreviewType->addItem(tr("Backward Vertical"), int(PreviewWidget::PreviewType::BackwardVertical)); ui->cbPreviewType->addItem(tr("Duplicate Top"), int(PreviewWidget::PreviewType::DuplicateTop)); ui->cbPreviewType->addItem(tr("Duplicate Left"), int(PreviewWidget::PreviewType::DuplicateLeft)); ui->cbPreviewType->addItem(tr("Duplicate Bottom"), int(PreviewWidget::PreviewType::DuplicateBottom)); ui->cbPreviewType->addItem(tr("Duplicate Right"), int(PreviewWidget::PreviewType::DuplicateRight)); ui->cbPreviewType->addItem(tr("Duplicate Horizontal"), int(PreviewWidget::PreviewType::DuplicateHorizontal)); ui->cbPreviewType->addItem(tr("Duplicate Vertical"), int(PreviewWidget::PreviewType::DuplicateVertical)); ui->cbPreviewType->addItem(tr("Checkered"), int(PreviewWidget::PreviewType::Checkered)); ui->cbPreviewType->addItem(tr("Checkered Inverse"), int(PreviewWidget::PreviewType::CheckeredInverse)); connect(ui->cbPreviewType, QOverload::of(&QComboBox::currentIndexChanged), // [this](int index) { // ui->previewWidget->setPreviewType(PreviewWidget::PreviewType(ui->cbPreviewType->itemData(index).toInt())); }); makeConnections(); } MainWindow::~MainWindow() { saveCurrentParameters(); ParametersCache::save(); FilterGuiDynamismCache::save(); saveSettings(); Logger::setMode(Logger::Mode::StandardOutput); // Close log file, if necessary delete ui; } void MainWindow::setIcons() { ui->tbTags->setIcon(IconLoader::load("color-wheel")); ui->tbRenameFave->setIcon(IconLoader::load("rename")); ui->pbSettings->setIcon(IconLoader::load("package_settings")); ui->pbFullscreen->setIcon(IconLoader::load("view-fullscreen")); ui->tbUpdateFilters->setIcon(IconLoader::loadNoDarkened("view-refresh")); ui->pbApply->setIcon(IconLoader::load("system-run")); ui->pbOk->setIcon(IconLoader::load("insert-image")); ui->tbResetParameters->setIcon(IconLoader::load("view-refresh")); ui->tbRandomizeParameters->setIcon(IconLoader::load("randomize")); ui->tbCopyCommand->setIcon(IconLoader::load("edit-copy")); ui->pbClose->setIcon(IconLoader::load("close")); ui->pbCancel->setIcon(IconLoader::load("cancel")); ui->tbAddFave->setIcon(IconLoader::load("bookmark-add")); ui->tbRemoveFave->setIcon(IconLoader::load("bookmark-remove")); ui->tbSelectionMode->setIcon(IconLoader::load("selection_mode")); _expandIcon = IconLoader::load("draw-arrow-down"); _collapseIcon = IconLoader::load("draw-arrow-up"); _expandCollapseIcon = &_expandIcon; ui->tbExpandCollapse->setIcon(_expandIcon); } void MainWindow::setDarkTheme() { // SHOW(QStyleFactory::keys()); qApp->setStyle(QStyleFactory::create("Fusion")); QPalette p = qApp->palette(); p.setColor(QPalette::Window, QColor(53, 53, 53)); p.setColor(QPalette::Button, QColor(73, 73, 73)); p.setColor(QPalette::Highlight, QColor(110, 110, 110)); p.setColor(QPalette::Text, QColor(255, 255, 255)); p.setColor(QPalette::ButtonText, QColor(255, 255, 255)); p.setColor(QPalette::WindowText, QColor(255, 255, 255)); QColor linkColor(130, 130, 150); linkColor = linkColor.lighter(); p.setColor(QPalette::Link, linkColor); p.setColor(QPalette::LinkVisited, linkColor); const QColor disabledGray(40, 40, 40); const QColor disabledTextGray(128, 128, 128); p.setColor(QPalette::Disabled, QPalette::Window, disabledGray); p.setColor(QPalette::Disabled, QPalette::Base, disabledGray); p.setColor(QPalette::Disabled, QPalette::AlternateBase, disabledGray); p.setColor(QPalette::Disabled, QPalette::Button, disabledGray); p.setColor(QPalette::Disabled, QPalette::Text, disabledTextGray); p.setColor(QPalette::Disabled, QPalette::ButtonText, disabledTextGray); p.setColor(QPalette::Disabled, QPalette::WindowText, disabledTextGray); qApp->setPalette(p); p = ui->cbInternetUpdate->palette(); p.setColor(QPalette::Text, Settings::CheckBoxTextColor); p.setColor(QPalette::Base, Settings::CheckBoxBaseColor); ui->cbInternetUpdate->setPalette(p); ui->cbPreview->setPalette(p); const QString css = "QTreeView { background: #505050; }" "QLineEdit { background: #505050; }" "QMenu { background: #505050; border: 1px solid rgb(100,100,100); }" "QMenu::item:selected { background: rgb(110,110,110); }" "QTextEdit { background: #505050; }" "QSpinBox { background: #505050; }" "QListWidget { background: #505050; }" "QDoubleSpinBox { background: #505050; }" "QToolButton:checked { background: #383838; }" "QToolButton:pressed { background: #383838; }" "QComboBox QAbstractItemView { background: #505050; } " "QGroupBox { border: 1px solid #808080; margin-top: 4ex; } " "QFileDialog QAbstractItemView { background: #505050; } " "QComboBox:editable { background: #505050; } " "QProgressBar { background: #505050; }"; qApp->setStyleSheet(css); ui->inOutSelector->setDarkTheme(); ui->vSplitterLine->setStyleSheet("QFrame{ border-top: 0px none #a0a0a0; border-bottom: 1px solid rgb(160,160,160);}"); Settings::UnselectedFilterTextColor = Settings::UnselectedFilterTextColor.darker(150); } void MainWindow::setPluginParameters(const RunParameters & parameters) { _pluginParameters = parameters; } void MainWindow::updateFiltersFromSources(int ageLimit, bool useNetwork) { if (useNetwork) { ui->progressInfoWidget->startFiltersUpdateAnimationAndShow(); } connect(Updater::getInstance(), &Updater::updateIsDone, this, &MainWindow::onUpdateDownloadsFinished, Qt::UniqueConnection); Updater::getInstance()->startUpdate(ageLimit, 60, useNetwork); } void MainWindow::onUpdateDownloadsFinished(int status) { ui->progressInfoWidget->stopAnimationAndHide(); buildFiltersTree(); if (status == (int)Updater::UpdateStatus::SomeFailed) { if (!ui->progressInfoWidget->hasBeenCanceled()) { showUpdateErrors(); } } else if (status == (int)Updater::UpdateStatus::Successful) { if (ui->cbInternetUpdate->isChecked()) { QMessageBox::information(this, tr("Update completed"), tr("Filter definitions have been updated.")); } else { showMessage(tr("Filter definitions have been updated."), 3000); } } else if (status == (int)Updater::UpdateStatus::NotNecessary) { showMessage(tr("No download was needed."), 3000); } ui->tbUpdateFilters->setEnabled(true); if (_filtersPresenter->currentFilter().hash.isEmpty()) { setNoFilter(); } else { activateFilter(false); } ui->previewWidget->sendUpdateRequest(); } void MainWindow::buildFiltersTree() { saveCurrentParameters(); GmicStdLib::Array = Updater::getInstance()->buildFullStdlib(); const bool withVisibility = filtersSelectionMode(); _filtersPresenter->clear(); _filtersPresenter->readFilters(); _filtersPresenter->readFaves(); _filtersPresenter->restoreFaveHashLinksAfterCaseChange(); // TODO : Remove, some day! if (_gtkFavesShouldBeImported) { _filtersPresenter->importGmicGTKFaves(); _filtersPresenter->saveFaves(); _gtkFavesShouldBeImported = false; QSettings().setValue(FAVES_IMPORT_KEY, true); } _filtersPresenter->toggleSelectionMode(withVisibility); } void MainWindow::retrieveFilterAndParametersFromPluginParameters(QString & hash, QList & parameters) { if (_pluginParameters.command.empty() && _pluginParameters.filterPath.empty()) { return; } hash.clear(); parameters.clear(); try { QString plainPath = HtmlTranslator::html2txt(QString::fromStdString(_pluginParameters.filterPath), false); QString command; QString arguments; QStringList providedParameters; const FiltersPresenter::Filter & filter = _filtersPresenter->currentFilter(); if (!plainPath.isEmpty()) { _filtersPresenter->selectFilterFromAbsolutePathOrPlainName(plainPath); if (!filter.isValid()) { throw tr("Plugin was called with a filter path with no matching filter:\n\nPath: %1").arg(QString::fromStdString(_pluginParameters.filterPath)); } } if (_pluginParameters.command.empty()) { if (filter.isValid()) { QString error; parameters = filter.isAFave ? filter.defaultParameterValues : FilterParametersWidget::defaultParameterList(filter.parameters, &error, nullptr, nullptr); if (notEmpty(error)) { throw tr("Error parsing filter parameters definition for filter:\n\n%1\n\nCannot retrieve default parameters.\n\n%2").arg(filter.fullPath).arg(error); } hash = filter.hash; } } else { // A command (and maybe a path) is provided if (!parseGmicUniqueFilterCommand(_pluginParameters.command.c_str(), command, arguments) // || !parseGmicFilterParameters(arguments, providedParameters)) { throw tr("Plugin was called with a command that cannot be parsed:\n\n%1").arg(elided80(_pluginParameters.command)); } if (plainPath.isEmpty()) { _filtersPresenter->selectFilterFromCommand(command); if (filter.isInvalid()) { throw tr("Plugin was called with a command that cannot be recognized as a filter:\n\nCommand: %1").arg(elided80(_pluginParameters.command)); } } else { // Filter has already been selected (above) from its path if (filter.command != command) { throw tr("Plugin was called with a command that does not match the provided path:\n\nPath: %1\nCommand: %2\nCommand found for this path : %3") // .arg(elided80(_pluginParameters.filterPath)) .arg(QString::fromStdString(_pluginParameters.command)) .arg(filter.command); } } QString error; QVector lengths; auto defaults = FilterParametersWidget::defaultParameterList(filter.parameters, &error, nullptr, &lengths); if (notEmpty(error)) { throw tr("Error parsing filter parameters definition for filter:\n\n%1\n\nCannot retrieve default parameters.\n\n%2").arg(filter.fullPath).arg(error); } if (filter.isAFave) { // lengths have been computed, but we replace 'defaults' with Fave's ones. defaults = filter.defaultParameterValues; } hash = filter.hash; auto expandedDefaults = expandParameterList(defaults, lengths); auto completed = completePrefixFromFullList(providedParameters, expandedDefaults); parameters = mergeSubsequences(completed, lengths); } } catch (const QString & errorMessage) { hash.clear(); parameters.clear(); QMessageBox::critical(this, "Error with plugin arguments", errorMessage); } } QString MainWindow::screenGeometries() { QList screens = QGuiApplication::screens(); QStringList geometries; for (QScreen * screen : screens) { QRect geometry = screen->geometry(); geometries.push_back(QString("(%1,%2,%3,%4)").arg(geometry.x()).arg(geometry.y()).arg(geometry.width()).arg(geometry.height())); } return geometries.join(QString()); } void MainWindow::updateFilters(bool internet) { ui->tbUpdateFilters->setEnabled(false); updateFiltersFromSources(0, internet); } void MainWindow::onStartupFiltersUpdateFinished(int status) { bool ok = QObject::disconnect(Updater::getInstance(), &Updater::updateIsDone, this, &MainWindow::onStartupFiltersUpdateFinished); Q_ASSERT_X(ok, __PRETTY_FUNCTION__, "Cannot disconnect Updater::updateIsDone from MainWindow::onStartupFiltersUpdateFinished"); ui->progressInfoWidget->stopAnimationAndHide(); if (status == (int)Updater::UpdateStatus::SomeFailed) { if (Settings::notifyFailedStartupUpdate()) { showMessage(tr("Filters update could not be achieved"), 3000); } } else if (status == (int)Updater::UpdateStatus::Successful) { if (Updater::getInstance()->someNetworkUpdateAchieved()) { showMessage(tr("Filter definitions have been updated."), 4000); } } else if (status == (int)Updater::UpdateStatus::NotNecessary) { } if (QSettings().value(FAVES_IMPORT_KEY, false).toBool() || !FavesModelReader::gmicGTKFaveFileAvailable()) { _gtkFavesShouldBeImported = false; } else { _gtkFavesShouldBeImported = askUserForGTKFavesImport(); } buildFiltersTree(); ui->searchField->setFocus(); // Let the standalone version load an image, if necessary (not pretty) if (GmicQtHost::ApplicationName.isEmpty()) { LayersExtentProxy::clear(); QSize extent = LayersExtentProxy::getExtent(ui->inOutSelector->inputMode()); ui->previewWidget->setFullImageSize(extent); ui->previewWidget->update(); } // Retrieve and select previously selected filter QString hash = QSettings().value("SelectedFilter", QString()).toString(); if (_newSession || !_lastExecutionOK) { hash.clear(); } // If plugin was called with parameters QList pluginParametersCommandArguments; retrieveFilterAndParametersFromPluginParameters(hash, pluginParametersCommandArguments); _filtersPresenter->selectFilterFromHash(hash, false); if (_filtersPresenter->currentFilter().hash.isEmpty()) { _filtersPresenter->expandFaveFolder(); _filtersPresenter->adjustViewSize(); ui->previewWidget->setPreviewFactor(PreviewFactorFullImage, true); setNoFilter(); } else { _filtersPresenter->adjustViewSize(); activateFilter(true, pluginParametersCommandArguments); } ui->previewWidget->sendUpdateRequest(); // Preview update is also triggered when PreviewWidget receives // the WindowActivate Event (while pendingResize is true // after the very first resize event). } void MainWindow::showZoomWarningIfNeeded() { const FiltersPresenter::Filter & currentFilter = _filtersPresenter->currentFilter(); ui->zoomLevelSelector->showWarning(!currentFilter.hash.isEmpty() && !currentFilter.isAccurateIfZoomed && !ui->previewWidget->isAtDefaultZoom()); } void MainWindow::updateZoomLabel(double zoom) { ui->zoomLevelSelector->display(zoom); } void MainWindow::onFiltersSelectionModeToggled(bool on) { _filtersPresenter->toggleSelectionMode(on); } void MainWindow::onPreviewCheckBoxToggled(bool on) { if (!on) { _processor.cancel(); } ui->previewWidget->onPreviewToggled(on); } void MainWindow::onFilterSelectionChanged() { activateFilter(false); ui->previewWidget->sendUpdateRequest(); } void MainWindow::onEscapeKeyPressed() { ui->searchField->clear(); if (_processor.isProcessing()) { if (_processor.isProcessingFullImage()) { ui->progressInfoWidget->cancel(); ui->pbCancel->animateClick(); } else { _processor.cancel(); ui->previewWidget->displayOriginalImage(); ui->tbUpdateFilters->setEnabled(true); } } } void MainWindow::clearMessage() { ui->messageLabel->setText(QString()); if (!_messageTimerID) { return; } killTimer(_messageTimerID); _messageTimerID = 0; } void MainWindow::clearRightMessage() { ui->rightMessageLabel->hide(); ui->rightMessageLabel->clear(); } void MainWindow::showRightMessage(const QString & text) { ui->rightMessageLabel->setText(text); ui->rightMessageLabel->show(); } void MainWindow::timerEvent(QTimerEvent * e) { if (e->timerId() == _messageTimerID) { clearMessage(); e->accept(); } e->ignore(); } void MainWindow::showMessage(const QString & text, int ms) { clearMessage(); if (!text.isEmpty()) { ui->messageLabel->setText(text); if (ms) { _messageTimerID = startTimer(ms); } } } void MainWindow::showUpdateErrors() { QString message(tr("The update could not be achieved
" "because of the following errors:
")); QList errors = Updater::getInstance()->errorMessages(); for (const QString & s : errors) { message += QString("
%1").arg(s); } QMessageBox::information(this, tr("Update error"), message); } void MainWindow::makeConnections() { connect(ui->zoomLevelSelector, &ZoomLevelSelector::valueChanged, ui->previewWidget, &PreviewWidget::setZoomLevel); connect(ui->previewWidget, &PreviewWidget::zoomChanged, this, &MainWindow::showZoomWarningIfNeeded); connect(ui->previewWidget, &PreviewWidget::zoomChanged, this, &MainWindow::updateZoomLabel); connect(ui->previewWidget, &PreviewWidget::previewVisibleRectIsChanging, &_processor, &GmicProcessor::cancel); connect(_filtersPresenter, &FiltersPresenter::filterSelectionChanged, this, &MainWindow::onFilterSelectionChanged); connect(ui->pbOk, &QPushButton::clicked, this, &MainWindow::onOkClicked); connect(ui->pbClose, &QPushButton::clicked, this, &MainWindow::close); connect(ui->pbApply, &QPushButton::clicked, this, &MainWindow::onApplyClicked); connect(ui->tbResetParameters, &QToolButton::clicked, this, &MainWindow::onReset); connect(ui->tbRandomizeParameters, &QToolButton::clicked, this, &MainWindow::onRandomizeParameters); connect(ui->tbCopyCommand, &QToolButton::clicked, this, &MainWindow::onCopyGMICCommand); connect(ui->tbUpdateFilters, &QToolButton::clicked, this, &MainWindow::onUpdateFiltersClicked); connect(ui->pbSettings, &QPushButton::clicked, this, &MainWindow::onSettingsClicked); connect(ui->pbFullscreen, &QPushButton::toggled, this, &MainWindow::onToggleFullScreen); connect(ui->filterParams, &FilterParametersWidget::valueChanged, this, &MainWindow::onParametersChanged); connect(ui->previewWidget, &PreviewWidget::previewUpdateRequested, this, QOverload<>::of(&MainWindow::onPreviewUpdateRequested)); connect(ui->previewWidget, &PreviewWidget::keypointPositionsChanged, this, &MainWindow::onPreviewKeypointsEvent); connect(ui->zoomLevelSelector, &ZoomLevelSelector::zoomIn, ui->previewWidget, QOverload<>::of(&PreviewWidget::zoomIn)); connect(ui->zoomLevelSelector, &ZoomLevelSelector::zoomOut, ui->previewWidget, QOverload<>::of(&PreviewWidget::zoomOut)); connect(ui->zoomLevelSelector, &ZoomLevelSelector::zoomReset, this, &MainWindow::onPreviewZoomReset); connect(ui->tbAddFave, &QToolButton::clicked, this, &MainWindow::onAddFave); connect(_filtersPresenter, &FiltersPresenter::faveAdditionRequested, this, &MainWindow::onAddFave); connect(ui->tbRemoveFave, &QToolButton::clicked, this, &MainWindow::onRemoveFave); connect(ui->tbRenameFave, &QToolButton::clicked, this, &MainWindow::onRenameFave); connect(ui->inOutSelector, &InOutPanel::inputModeChanged, this, &MainWindow::onInputModeChanged); connect(ui->cbPreview, &QCheckBox::toggled, this, &MainWindow::onPreviewCheckBoxToggled); connect(ui->searchField, &SearchFieldWidget::textChanged, this, &MainWindow::search); connect(ui->tbExpandCollapse, &QToolButton::clicked, this, &MainWindow::expandOrCollapseFolders); connect(ui->pbCancel, &QPushButton::clicked, this, &MainWindow::onCancelClicked); connect(ui->progressInfoWidget, &ProgressInfoWidget::canceled, this, &MainWindow::onProgressionWidgetCancelClicked); connect(ui->tbSelectionMode, &QToolButton::toggled, this, &MainWindow::onFiltersSelectionModeToggled); connect(&_processor, &GmicProcessor::previewImageAvailable, this, &MainWindow::onPreviewImageAvailable); connect(&_processor, &GmicProcessor::guiDynamismRunDone, this, &MainWindow::onGUIDynamismRunDone); connect(&_processor, &GmicProcessor::previewCommandFailed, this, &MainWindow::onPreviewError); connect(&_processor, &GmicProcessor::fullImageProcessingFailed, this, &MainWindow::onFullImageProcessingError); connect(&_processor, &GmicProcessor::fullImageProcessingDone, this, &MainWindow::onFullImageProcessingDone); connect(&_processor, &GmicProcessor::aboutToSendImagesToHost, ui->progressInfoWidget, &ProgressInfoWidget::stopAnimationAndHide); connect(_filtersPresenter, &FiltersPresenter::faveNameChanged, this, &MainWindow::setFilterName); } void MainWindow::onPreviewUpdateRequested() { clearMessage(); clearRightMessage(); onPreviewUpdateRequested(false); } void MainWindow::onPreviewUpdateRequested(bool synchronous, bool randomized) { const FiltersPresenter::Filter currentFilter = _filtersPresenter->currentFilter(); if (currentFilter.isNoPreviewFilter()) { ui->previewWidget->displayOriginalImage(); return; } FilterGuiDynamism dynamism = FilterGuiDynamismCache::getValue(currentFilter.hash); if (!ui->cbPreview->isChecked() && (dynamism == FilterGuiDynamism::Static)) { ui->previewWidget->invalidateSavedPreview(); return; } ui->tbUpdateFilters->setEnabled(false); _processor.init(); GmicProcessor::FilterContext context; if (!ui->cbPreview->isChecked()) { context.requestType = GmicProcessor::FilterContext::RequestType::GUIDynamismRun; } else { context.requestType = synchronous ? GmicProcessor::FilterContext::RequestType::SynchronousPreview : GmicProcessor::FilterContext::RequestType::Preview; } GmicProcessor::FilterContext::VisibleRect & rect = context.visibleRect; ui->previewWidget->normalizedVisibleRect(rect.x, rect.y, rect.w, rect.h); context.inputOutputState = ui->inOutSelector->state(); ui->previewWidget->getPositionStringCorrection(context.positionStringCorrection.xFactor, context.positionStringCorrection.yFactor); context.zoomFactor = ui->previewWidget->currentZoomFactor(); context.previewWindowWidth = ui->previewWidget->width(); context.previewWindowHeight = ui->previewWidget->height(); context.previewTimeout = Settings::previewTimeout(); // context.filterName = currentFilter.plainTextName; // Unused in this context context.filterHash = currentFilter.hash; context.filterCommand = currentFilter.previewCommand; context.filterArguments = ui->filterParams->valueString(); context.previewFromFullImage = currentFilter.previewFromFullImage; context.previewCheckBox = ui->cbPreview->isChecked(); context.randomized = randomized; _processor.setContext(context); _processor.execute(); ui->filterParams->clearButtonParameters(); _okButtonShouldApply = true; } void MainWindow::onPreviewKeypointsEvent(unsigned int flags, unsigned long time) { if (flags & PreviewWidget::KeypointMouseReleaseEvent) { if (flags & PreviewWidget::KeypointBurstEvent) { // Notify the filter twice (synchronously) so that it can guess that the button has been released ui->filterParams->setKeypoints(ui->previewWidget->keypoints(), false); onPreviewUpdateRequested(true); onPreviewUpdateRequested(true); } else { ui->filterParams->setKeypoints(ui->previewWidget->keypoints(), true); } _lastPreviewKeypointBurstUpdateTime = 0; } else { ui->filterParams->setKeypoints(ui->previewWidget->keypoints(), false); if ((flags & PreviewWidget::KeypointBurstEvent)) { const auto t = static_cast(_processor.lastPreviewFilterExecutionDurationMS()); const bool keypointBurstEnabled = (t <= KEYPOINTS_INTERACTIVE_LOWER_DELAY_MS) || ((t <= KEYPOINTS_INTERACTIVE_UPPER_DELAY_MS) && ((ulong)_processor.averagePreviewFilterExecutionDuration() <= KEYPOINTS_INTERACTIVE_MIDDLE_DELAY_MS)); ulong msSinceLastBurstEvent = time - _lastPreviewKeypointBurstUpdateTime; if (keypointBurstEnabled && (msSinceLastBurstEvent >= (ulong)_processor.lastPreviewFilterExecutionDurationMS())) { onPreviewUpdateRequested(true); _lastPreviewKeypointBurstUpdateTime = time; } } } } void MainWindow::onPreviewImageAvailable() { ui->filterParams->setValues(_processor.gmicStatus(), false); ui->filterParams->setVisibilityStates(_processor.parametersVisibilityStates()); // Make sure keypoint positions are synchronized with gmic status if (ui->filterParams->hasKeypoints()) { ui->previewWidget->setKeypoints(ui->filterParams->keypoints()); } ui->previewWidget->setPreviewImage(_processor.previewImage()); ui->previewWidget->enableRightClick(); ui->tbUpdateFilters->setEnabled(true); } void MainWindow::onGUIDynamismRunDone() { ui->filterParams->setValues(_processor.gmicStatus(), false); ui->filterParams->setVisibilityStates(_processor.parametersVisibilityStates()); if (ui->filterParams->hasKeypoints()) { ui->previewWidget->setKeypoints(ui->filterParams->keypoints()); } ui->tbUpdateFilters->setEnabled(true); } void MainWindow::onPreviewError(const QString & message) { ui->previewWidget->setPreviewErrorMessage(message); ui->previewWidget->enableRightClick(); ui->tbUpdateFilters->setEnabled(true); } void MainWindow::onParametersChanged() { if (ui->filterParams->hasKeypoints()) { ui->previewWidget->setKeypoints(ui->filterParams->keypoints()); } ui->previewWidget->sendUpdateRequest(); } bool MainWindow::isAccepted() { return _isAccepted; } void MainWindow::setFilterName(const QString & text) { ui->filterName->setText(QString("%1").arg(text)); } void MainWindow::processImage() { // Abort any already running thread _processor.init(); const FiltersPresenter::Filter currentFilter = _filtersPresenter->currentFilter(); if (currentFilter.isNoApplyFilter()) { return; } ui->progressInfoWidget->startFilterThreadAnimationAndShow(); enableWidgetList(false); ui->pbCancel->setEnabled(true); GmicProcessor::FilterContext context; context.requestType = GmicProcessor::FilterContext::RequestType::FullImage; GmicProcessor::FilterContext::VisibleRect & rect = context.visibleRect; rect.x = rect.y = rect.w = rect.h = -1; context.inputOutputState = ui->inOutSelector->state(); context.filterName = currentFilter.plainTextName; context.filterFullPath = currentFilter.fullPath; context.filterHash = currentFilter.hash; context.filterCommand = currentFilter.command; context.previewCheckBox = ui->cbPreview->isChecked(); context.randomized = false; ui->filterParams->updateValueString(false); // Required to get up-to-date values of text parameters context.filterArguments = ui->filterParams->valueString(); context.previewFromFullImage = false; _processor.setGmicStatusQuotedParameters(ui->filterParams->quotedParameters()); ui->filterParams->clearButtonParameters(); _processor.setContext(context); _processor.execute(); } void MainWindow::onFullImageProcessingError(const QString & message) { ui->progressInfoWidget->stopAnimationAndHide(); QMessageBox::warning(this, tr("Error"), message, QMessageBox::Close); enableWidgetList(true); ui->pbCancel->setEnabled(false); if ((_pendingActionAfterCurrentProcessing == ProcessingAction::Ok) || (_pendingActionAfterCurrentProcessing == ProcessingAction::Close)) { close(); } } void MainWindow::onInputModeChanged(InputMode mode) { PersistentMemory::clear(); ui->previewWidget->setFullImageSize(LayersExtentProxy::getExtent(mode)); ui->previewWidget->sendUpdateRequest(); } void MainWindow::onVeryFirstShowEvent() { adjustVerticalSplitter(); if (_newSession) { Logger::clear(); } QObject::connect(Updater::getInstance(), &Updater::updateIsDone, this, &MainWindow::onStartupFiltersUpdateFinished); Logger::setMode(Settings::outputMessageMode()); Updater::setOutputMessageMode(Settings::outputMessageMode()); int ageLimit; { QSettings settings; ageLimit = settings.value(INTERNET_UPDATE_PERIODICITY_KEY, INTERNET_DEFAULT_PERIODICITY).toInt(); } const bool useNetwork = (ageLimit != INTERNET_NEVER_UPDATE_PERIODICITY); ui->progressInfoWidget->startFiltersUpdateAnimationAndShow(); Updater::getInstance()->startUpdate(ageLimit, 4, useNetwork); } void MainWindow::setZoomConstraint() { const FiltersPresenter::Filter & currentFilter = _filtersPresenter->currentFilter(); ZoomConstraint constraint; if (currentFilter.hash.isEmpty() || currentFilter.isAccurateIfZoomed || Settings::previewZoomAlwaysEnabled() || (currentFilter.previewFactor == PreviewFactorAny)) { constraint = ZoomConstraint::Any; } else if (currentFilter.previewFactor == PreviewFactorActualSize) { constraint = ZoomConstraint::OneOrMore; } else { constraint = ZoomConstraint::Fixed; } showZoomWarningIfNeeded(); ui->zoomLevelSelector->setZoomConstraint(constraint); ui->previewWidget->setZoomConstraint(constraint); } void MainWindow::onFullImageProcessingDone() { ui->progressInfoWidget->stopAnimationAndHide(); enableWidgetList(true); ui->pbCancel->setEnabled(false); ui->previewWidget->update(); ui->filterParams->setValues(_processor.gmicStatus(), false); ui->filterParams->setVisibilityStates(_processor.parametersVisibilityStates()); if ((_pendingActionAfterCurrentProcessing == ProcessingAction::Ok || _pendingActionAfterCurrentProcessing == ProcessingAction::Close)) { _isAccepted = (_pendingActionAfterCurrentProcessing == ProcessingAction::Ok); close(); } else { // Extent cache has been cleared by the GmicProcessor QSize extent = LayersExtentProxy::getExtent(ui->inOutSelector->inputMode()); ui->previewWidget->updateFullImageSizeIfDifferent(extent); ui->previewWidget->sendUpdateRequest(); _okButtonShouldApply = false; if (_pendingActionAfterCurrentProcessing == ProcessingAction::Apply) { showRightMessage(QString(tr("[Elapsed time: %1]")).arg(readableDuration(_processor.lastCompletedExecutionTime()))); } } } void MainWindow::expandOrCollapseFolders() { if (_expandCollapseIcon == &_expandIcon) { _filtersPresenter->expandAll(); ui->tbExpandCollapse->setIcon(_collapseIcon); _expandCollapseIcon = &_collapseIcon; } else { ui->tbExpandCollapse->setIcon(_expandIcon); _filtersPresenter->collapseAll(); _expandCollapseIcon = &_expandIcon; } } void MainWindow::search(const QString & text) { _filtersPresenter->applySearchCriterion(text); } void MainWindow::onApplyClicked() { clearMessage(); clearRightMessage(); _pendingActionAfterCurrentProcessing = ProcessingAction::Apply; processImage(); } void MainWindow::onOkClicked() { if (_filtersPresenter->currentFilter().isNoApplyFilter()) { _isAccepted = _processor.completedFullImageProcessingCount(); close(); return; } if (_okButtonShouldApply) { clearMessage(); clearRightMessage(); _pendingActionAfterCurrentProcessing = ProcessingAction::Ok; processImage(); } else { _isAccepted = _processor.completedFullImageProcessingCount(); close(); } } void MainWindow::onReset() { if (!_filtersPresenter->currentFilter().hash.isEmpty() && _filtersPresenter->currentFilter().isAFave) { PersistentMemory::clear(); ui->filterParams->setVisibilityStates(_filtersPresenter->currentFilter().defaultVisibilityStates); ui->filterParams->setValues(_filtersPresenter->currentFilter().defaultParameterValues, true); return; } if (!_filtersPresenter->currentFilter().isNoPreviewFilter()) { PersistentMemory::clear(); ui->filterParams->reset(true); } } void MainWindow::onRandomizeParameters() { if (_filtersPresenter->currentFilter().isNoPreviewFilter()) { return; } ui->filterParams->randomize(); if (ui->filterParams->hasKeypoints()) { ui->previewWidget->setKeypoints(ui->filterParams->keypoints()); } ui->previewWidget->invalidateSavedPreview(); clearMessage(); clearRightMessage(); onPreviewUpdateRequested(false, true); } void MainWindow::onCopyGMICCommand() { QClipboard * clipboard = QGuiApplication::clipboard(); QString fullCommand = _filtersPresenter->currentFilter().command; fullCommand += " "; fullCommand += ui->filterParams->valueString(); clipboard->setText(fullCommand, QClipboard::Clipboard); } void MainWindow::onPreviewZoomReset() { if (!_filtersPresenter->currentFilter().hash.isEmpty()) { ui->previewWidget->setPreviewFactor(_filtersPresenter->currentFilter().previewFactor, true); ui->previewWidget->sendUpdateRequest(); ui->zoomLevelSelector->showWarning(false); } } void MainWindow::onUpdateFiltersClicked() { updateFilters(ui->cbInternetUpdate->isChecked()); } void MainWindow::saveCurrentParameters() { QString hash = ui->filterParams->filterHash(); if (!hash.isEmpty()) { ParametersCache::setValues(hash, ui->filterParams->valueStringList()); ParametersCache::setVisibilityStates(hash, ui->filterParams->visibilityStates()); ParametersCache::setInputOutputState(hash, ui->inOutSelector->state(), _filtersPresenter->currentFilter().defaultInputMode); } } void MainWindow::saveSettings() { QSettings settings; _filtersPresenter->saveSettings(settings); // Cleanup obsolete keys settings.remove("OutputMessageModeIndex"); settings.remove("OutputMessageModeValue"); settings.remove("InputLayers"); settings.remove("OutputMode"); settings.remove("PreviewMode"); settings.remove("Config/VerticalSplitterSize0"); settings.remove("Config/VerticalSplitterSize1"); settings.remove("Config/VerticalSplitterSizeTop"); settings.remove("Config/VerticalSplitterSizeBottom"); // Save all settings Settings::save(settings); settings.setValue("LastExecution/gmic_version", gmic_version); _processor.saveSettings(settings); settings.setValue("SelectedFilter", _filtersPresenter->currentFilter().hash); settings.setValue("Config/MainWindowPosition", frameGeometry().topLeft()); settings.setValue("Config/MainWindowRect", rect()); settings.setValue("Config/MainWindowMaximized", isMaximized()); settings.setValue("Config/ScreenGeometries", screenGeometries()); settings.setValue("Config/PreviewEnabled", ui->cbPreview->isChecked()); settings.setValue("LastExecution/ExitedNormally", true); settings.setValue("LastExecution/HostApplicationID", host_app_pid()); QList splitterSizes = ui->splitter->sizes(); for (int i = 0; i < splitterSizes.size(); ++i) { settings.setValue(QString("Config/PanelSize%1").arg(i), splitterSizes.at(i)); } splitterSizes = ui->verticalSplitter->sizes(); if (!_filtersPresenter->currentFilter().hash.isEmpty() && !_filtersPresenter->currentFilter().isInvalid()) { settings.setValue(QString("Config/ParamsVerticalSplitterSizeTop"), splitterSizes.at(0)); settings.setValue(QString("Config/ParamsVerticalSplitterSizeBottom"), splitterSizes.at(1)); } settings.setValue(REFRESH_USING_INTERNET_KEY, ui->cbInternetUpdate->isChecked()); } void MainWindow::loadSettings() { QSettings settings; _filtersPresenter->loadSettings(settings); _lastExecutionOK = settings.value("LastExecution/ExitedNormally", true).toBool(); _newSession = host_app_pid() != settings.value("LastExecution/HostApplicationID", 0).toUInt(); settings.setValue("LastExecution/ExitedNormally", false); ui->inOutSelector->reset(); bool previewEnabled = settings.value("Config/PreviewEnabled", true).toBool(); ui->cbPreview->setChecked(previewEnabled); ui->previewWidget->setPreviewEnabled(previewEnabled); // Preview position if (settings.value("Config/PreviewPosition", "Left").toString() == "Left") { setPreviewPosition(PreviewPosition::Left); } if (Settings::darkThemeEnabled()) { setDarkTheme(); } if (!Settings::visibleLogos()) { ui->logosLabel->hide(); } // Mainwindow geometry QPoint position = settings.value("Config/MainWindowPosition", QPoint(20, 20)).toPoint(); QRect r = settings.value("Config/MainWindowRect", QRect()).toRect(); const bool sameScreenGeometries = (settings.value("Config/ScreenGeometries", QString()).toString() == screenGeometries()); if (settings.value("Config/MainWindowMaximized", false).toBool()) { ui->pbFullscreen->setChecked(true); } else { if (r.isValid() && sameScreenGeometries) { if ((r.width() < 640) || (r.height() < 400)) { r.setSize(QSize(640, 400)); } setGeometry(r); move(position); } else { QList screens = QGuiApplication::screens(); if (!screens.isEmpty()) { QRect screenSize = screens.front()->geometry(); screenSize.setWidth(static_cast(screenSize.width() * 0.66)); screenSize.setHeight(static_cast(screenSize.height() * 0.66)); screenSize.moveCenter(screens.front()->geometry().center()); setGeometry(screenSize); int w = screenSize.width(); ui->splitter->setSizes(QList() << static_cast(w * 0.4) << static_cast(w * 0.2) << static_cast(w * 0.4)); } } } // Splitter sizes QList sizes; for (int i = 0; i < 3; ++i) { int s = settings.value(QString("Config/PanelSize%1").arg(i), 0).toInt(); if (s) { sizes.push_back(s); } } if (sizes.size() == 3) { ui->splitter->setSizes(sizes); } ui->cbInternetUpdate->setChecked(settings.value("Config/RefreshInternetUpdate", true).toBool()); } void MainWindow::setPreviewPosition(MainWindow::PreviewPosition position) { if (position == _previewPosition) { return; } _previewPosition = position; auto layout = dynamic_cast(ui->belowPreviewWidget->layout()); if (layout) { layout->removeWidget(ui->belowPreviewPadding); layout->removeWidget(ui->logosLabel); if (position == MainWindow::PreviewPosition::Left) { layout->addWidget(ui->logosLabel); layout->addWidget(ui->belowPreviewPadding); } else { layout->addWidget(ui->belowPreviewPadding); layout->addWidget(ui->logosLabel); } } // Swap splitter widgets QWidget * preview; QWidget * list; QWidget * params; if (position == MainWindow::PreviewPosition::Right) { ui->messageLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); preview = ui->splitter->widget(0); list = ui->splitter->widget(1); params = ui->splitter->widget(2); } else { ui->messageLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); list = ui->splitter->widget(0); params = ui->splitter->widget(1); preview = ui->splitter->widget(2); } preview->hide(); list->hide(); params->hide(); preview->setParent(this); list->setParent(this); params->setParent(this); if (position == MainWindow::PreviewPosition::Right) { ui->splitter->addWidget(list); ui->splitter->addWidget(params); ui->splitter->addWidget(preview); } else { ui->splitter->addWidget(preview); ui->splitter->addWidget(list); ui->splitter->addWidget(params); } preview->show(); list->show(); params->show(); ui->logosLabel->setAlignment(Qt::AlignVCenter | ((_previewPosition == PreviewPosition::Right) ? Qt::AlignRight : Qt::AlignLeft)); } void MainWindow::adjustVerticalSplitter() { QList sizes; QSettings settings; sizes.push_back(settings.value(QString("Config/ParamsVerticalSplitterSizeTop"), -1).toInt()); sizes.push_back(settings.value(QString("Config/ParamsVerticalSplitterSizeBottom"), -1).toInt()); const int splitterHeight = ui->verticalSplitter->height(); if ((sizes.front() != -1) && (sizes.back() != -1) && (sizes.front() + sizes.back() <= splitterHeight)) { ui->verticalSplitter->setSizes(sizes); } else { const int inOutHeight = std::max(ui->inOutSelector->sizeHint().height(), 75); if (splitterHeight > inOutHeight) { sizes.clear(); sizes.push_back(splitterHeight - inOutHeight); sizes.push_back(inOutHeight); ui->verticalSplitter->setSizes(sizes); } } } bool MainWindow::filtersSelectionMode() { return ui->tbSelectionMode->isChecked(); } void MainWindow::activateFilter(bool resetZoom, const QList & values) { saveCurrentParameters(); const FiltersPresenter::Filter & filter = _filtersPresenter->currentFilter(); _processor.resetLastPreviewFilterExecutionDurations(); if (filter.hash.isEmpty()) { setNoFilter(); return; } QList savedValues = values.isEmpty() ? ParametersCache::getValues(filter.hash) : values; if (savedValues.isEmpty() && filter.isAFave) { savedValues = filter.defaultParameterValues; } QList savedVisibilityStates = ParametersCache::getVisibilityStates(filter.hash); if (savedVisibilityStates.isEmpty() && filter.isAFave) { savedVisibilityStates = filter.defaultVisibilityStates; } if (!ui->filterParams->build(filter.name, filter.hash, filter.parameters, savedValues, savedVisibilityStates)) { _filtersPresenter->setInvalidFilter(); ui->previewWidget->setKeypoints(KeypointList()); } else { ui->previewWidget->setKeypoints(ui->filterParams->keypoints()); ui->tbRandomizeParameters->setEnabled(ui->filterParams->acceptRandom()); } setFilterName(FilterTextTranslator::translate(filter.name)); ui->inOutSelector->enable(); if (ui->inOutSelector->hasActiveControls()) { ui->inOutSelector->show(); } else { ui->inOutSelector->hide(); } InputOutputState inOutState = ParametersCache::getInputOutputState(filter.hash); if (inOutState.inputMode == InputMode::Unspecified) { if ((filter.defaultInputMode != InputMode::Unspecified)) { inOutState.inputMode = filter.defaultInputMode; } else { inOutState.inputMode = DefaultInputMode; } } // Take plugin parameters into account if (_pluginParameters.inputMode != InputMode::Unspecified) { inOutState.inputMode = _pluginParameters.inputMode; _pluginParameters.inputMode = InputMode::Unspecified; } if (_pluginParameters.outputMode != OutputMode::Unspecified) { inOutState.outputMode = _pluginParameters.outputMode; _pluginParameters.outputMode = OutputMode::Unspecified; } ui->inOutSelector->setState(inOutState, false); ui->previewWidget->updateFullImageSizeIfDifferent(LayersExtentProxy::getExtent(ui->inOutSelector->inputMode())); ui->filterName->setVisible(true); ui->tbAddFave->setEnabled(true); ui->previewWidget->setPreviewFactor(filter.previewFactor, resetZoom); setZoomConstraint(); _okButtonShouldApply = true; ui->tbResetParameters->setVisible(true); ui->tbRandomizeParameters->setVisible(true); ui->tbCopyCommand->setVisible(true); ui->tbRemoveFave->setEnabled(filter.isAFave); ui->tbRenameFave->setEnabled(filter.isAFave); } void MainWindow::setNoFilter() { PersistentMemory::clear(); ui->filterParams->setNoFilter(_filtersPresenter->errorMessage()); ui->previewWidget->disableRightClick(); ui->previewWidget->setKeypoints(KeypointList()); ui->inOutSelector->hide(); ui->inOutSelector->setState(InputOutputState::Default, false); ui->filterName->setVisible(false); ui->tbAddFave->setEnabled(false); ui->tbCopyCommand->setVisible(false); ui->tbResetParameters->setVisible(false); ui->tbRandomizeParameters->setVisible(false); ui->zoomLevelSelector->showWarning(false); _okButtonShouldApply = false; ui->tbRemoveFave->setEnabled(_filtersPresenter->danglingFaveIsSelected()); ui->tbRenameFave->setEnabled(false); } void MainWindow::showEvent(QShowEvent * event) { TIMING; event->accept(); if (!_showEventReceived) { _showEventReceived = true; onVeryFirstShowEvent(); } } void MainWindow::resizeEvent(QResizeEvent * e) { // Check if size is reducing if ((e->size().width() < e->oldSize().width() || e->size().height() < e->oldSize().height()) && ui->pbFullscreen->isChecked() && (windowState() & Qt::WindowMaximized)) { ui->pbFullscreen->toggle(); } } bool MainWindow::askUserForGTKFavesImport() { QMessageBox messageBox(QMessageBox::Question, tr("Import faves"), QString(tr("Do you want to import faves from file below?
%1")).arg(FavesModelReader::gmicGTKFavesFilename()), QMessageBox::Yes | QMessageBox::No, this); messageBox.setDefaultButton(QMessageBox::Yes); QCheckBox * cb = new QCheckBox(tr("Don't ask again")); if (Settings::darkThemeEnabled()) { QPalette p = cb->palette(); p.setColor(QPalette::Text, Settings::CheckBoxTextColor); p.setColor(QPalette::Base, Settings::CheckBoxBaseColor); cb->setPalette(p); } messageBox.setCheckBox(cb); int choice = messageBox.exec(); if (choice != QMessageBox::Yes) { if (cb->isChecked()) { QSettings().setValue(FAVES_IMPORT_KEY, true); } return false; } return true; } void MainWindow::onAddFave() { if (_filtersPresenter->currentFilter().hash.isEmpty()) { return; } saveCurrentParameters(); _filtersPresenter->addSelectedFilterAsNewFave(ui->filterParams->valueStringList(), ui->filterParams->visibilityStates(), ui->inOutSelector->state()); } void MainWindow::onRemoveFave() { _filtersPresenter->removeSelectedFave(); } void MainWindow::onRenameFave() { _filtersPresenter->editSelectedFaveName(); } void MainWindow::onToggleFullScreen(bool on) { if (on && !(windowState() & Qt::WindowMaximized)) { showMaximized(); } if (!on && (windowState() & Qt::WindowMaximized)) { showNormal(); } } void MainWindow::onSettingsClicked() { QList splitterSizes = ui->splitter->sizes(); int previewWidth; int paramsWidth; int treeWidth; if (_previewPosition == PreviewPosition::Left) { previewWidth = splitterSizes.at(0); paramsWidth = splitterSizes.at(2); treeWidth = splitterSizes.at(1); } else { previewWidth = splitterSizes.at(2); paramsWidth = splitterSizes.at(1); treeWidth = splitterSizes.at(0); } DialogSettings dialog(this); dialog.exec(); bool previewPositionChanged = (_previewPosition != Settings::previewPosition()); setPreviewPosition(Settings::previewPosition()); if (previewPositionChanged) { splitterSizes.clear(); if (_previewPosition == PreviewPosition::Left) { splitterSizes.push_back(previewWidth); splitterSizes.push_back(treeWidth); splitterSizes.push_back(paramsWidth); } else { splitterSizes.push_back(treeWidth); splitterSizes.push_back(paramsWidth); splitterSizes.push_back(previewWidth); } ui->splitter->setSizes(splitterSizes); } bool shouldUpdatePreview = false; if (Settings::visibleLogos()) { if (!ui->logosLabel->isVisible()) { shouldUpdatePreview = true; ui->logosLabel->show(); } } else { if (ui->logosLabel->isVisible()) { shouldUpdatePreview = true; ui->logosLabel->hide(); } } if (shouldUpdatePreview) { ui->previewWidget->sendUpdateRequest(); } // Manage zoom constraints setZoomConstraint(); if (!Settings::previewZoomAlwaysEnabled()) { const FiltersPresenter::Filter & filter = _filtersPresenter->currentFilter(); if (((ui->previewWidget->zoomConstraint() == ZoomConstraint::Fixed) && (ui->previewWidget->defaultZoomFactor() != ui->previewWidget->currentZoomFactor())) || ((ui->previewWidget->zoomConstraint() == ZoomConstraint::OneOrMore) && (ui->previewWidget->currentZoomFactor() < 1.0))) { ui->previewWidget->setPreviewFactor(filter.previewFactor, true); if (ui->cbPreview->isChecked()) { ui->previewWidget->sendUpdateRequest(); } } } showZoomWarningIfNeeded(); // Sources modification may require an update bool sourcesModified = false; bool sourcesRequireInternetUpdate = false; dialog.sourcesStatus(sourcesModified, sourcesRequireInternetUpdate); if (sourcesModified) { updateFilters(sourcesRequireInternetUpdate && ui->cbInternetUpdate->isChecked()); } } bool MainWindow::confirmAbortProcessingOnCloseRequest() { int button = QMessageBox::question(this, tr("Confirmation"), tr("A gmic command is running.
Do you really want to close the plugin?"), QMessageBox::Yes, QMessageBox::No); return (button == QMessageBox::Yes); } void MainWindow::enableWidgetList(bool on) { for (QWidget * w : _filterUpdateWidgets) { w->setEnabled(on); } ui->inOutSelector->setEnabled(on); } void MainWindow::onProgressionWidgetCancelClicked() { if (ui->progressInfoWidget->mode() == ProgressInfoWidget::Mode::FiltersUpdate) { Updater::getInstance()->cancelAllPendingDownloads(); } } void MainWindow::abortProcessingOnCloseRequest() { _pendingActionAfterCurrentProcessing = ProcessingAction::Close; connect(&_processor, &GmicProcessor::noMoreUnfinishedJobs, this, &MainWindow::close); ui->progressInfoWidget->showBusyIndicator(); ui->previewWidget->setOverlayMessage(tr("Waiting for cancelled jobs...")); enableWidgetList(false); ui->pbCancel->setEnabled(false); ui->pbClose->setEnabled(false); QTimer::singleShot(2000, [this]() { _pendingActionAfterCurrentProcessing = ProcessingAction::ForceQuit; ui->pbClose->setText(_forceQuitText); ui->pbClose->setEnabled(true); }); _processor.detachAllUnfinishedAbortedThreads(); // Keep only one thread in list after next line _processor.cancel(); } void MainWindow::selectPreviewType(PreviewWidget::PreviewType previewType) { if (ui->previewWidget->previewType() == PreviewWidget::PreviewType::Full) { for (int index = 0; index < ui->cbPreviewType->count(); ++index) { if (previewType == static_cast(ui->cbPreviewType->itemData(index).toInt())) { ui->cbPreviewType->setCurrentIndex(index); return; } } } else { for (int index = 0; index < ui->cbPreviewType->count(); ++index) { if (PreviewWidget::PreviewType::Full == static_cast(ui->cbPreviewType->itemData(index).toInt())) { ui->cbPreviewType->setCurrentIndex(index); return; } } } } void MainWindow::switchPreviewType() { ui->cbPreview->setChecked(true); if (ui->previewWidget->previewType() == PreviewWidget::PreviewType::Full) { selectPreviewType(ui->previewWidget->savedPreviewType()); } else { selectPreviewType(PreviewWidget::PreviewType::Full); } } void MainWindow::onCancelClicked() { ui->progressInfoWidget->cancel(); if (_processor.isProcessing()) { _pendingActionAfterCurrentProcessing = ProcessingAction::NoAction; _processor.cancel(); ui->progressInfoWidget->stopAnimationAndHide(); enableWidgetList(true); ui->pbCancel->setEnabled(false); } } void MainWindow::closeEvent(QCloseEvent * e) { if (_pendingActionAfterCurrentProcessing == ProcessingAction::ForceQuit) { _processor.disconnect(this); _processor.cancel(); _processor.detachAllUnfinishedAbortedThreads(); e->accept(); return; } if (_processor.isProcessing() && (_pendingActionAfterCurrentProcessing != ProcessingAction::Close)) { if (confirmAbortProcessingOnCloseRequest()) { abortProcessingOnCloseRequest(); } e->ignore(); return; } e->accept(); } } // namespace GmicQt ================================================ FILE: src/MainWindow.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file MainWindow.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_MAINWINDOW_H #define GMIC_QT_MAINWINDOW_H #include #include #include #include #include #include #include "Common.h" #include "GmicProcessor.h" #include "Widgets/PreviewWidget.h" class QResizeEvent; namespace Ui { class MainWindow; } namespace gmic_library { template struct gmic_list; } namespace GmicQt { class FiltersTreeFolderItem; class FiltersTreeFilterItem; class FiltersTreeAbstractFilterItem; class FiltersTreeFaveItem; class Updater; class FilterThread; class FiltersPresenter; class VisibleTagSelector; class MainWindow : public QMainWindow { Q_OBJECT public: enum class PreviewPosition { Left, Right }; explicit MainWindow(QWidget * parent = nullptr); ~MainWindow() override; void updateFiltersFromSources(int ageLimit, bool useNetwork); void setDarkTheme(); void setPluginParameters(const RunParameters & parameters); public slots: void onUpdateDownloadsFinished(int status); void onApplyClicked(); void onProgressionWidgetCancelClicked(); void onPreviewUpdateRequested(bool synchronous, bool randomized = false); void onPreviewUpdateRequested(); void onPreviewKeypointsEvent(unsigned int flags, unsigned long time); void onFullImageProcessingDone(); void expandOrCollapseFolders(); void search(const QString &); void onOkClicked(); void onCancelClicked(); void onReset(); void onRandomizeParameters(); void onCopyGMICCommand(); void onPreviewZoomReset(); void onUpdateFiltersClicked(); void saveCurrentParameters(); void onAddFave(); void onRemoveFave(); void onRenameFave(); void onToggleFullScreen(bool on); void onSettingsClicked(); void onStartupFiltersUpdateFinished(int); void showZoomWarningIfNeeded(); void updateZoomLabel(double); void onFiltersSelectionModeToggled(bool); void onPreviewCheckBoxToggled(bool); void onFilterSelectionChanged(); void onEscapeKeyPressed(); void onPreviewImageAvailable(); void onGUIDynamismRunDone(); void onPreviewError(const QString & message); void onParametersChanged(); static bool isAccepted(); void setFilterName(const QString & text); protected: void timerEvent(QTimerEvent *) override; void closeEvent(QCloseEvent * e) override; void showEvent(QShowEvent *) override; void resizeEvent(QResizeEvent *) override; void saveSettings(); void loadSettings(); void showUpdateErrors(); void makeConnections(); void processImage(); void activateFilter(bool resetZoom, const QList & values = QList()); void setNoFilter(); void setPreviewPosition(PreviewPosition position); void adjustVerticalSplitter(); private slots: void onFullImageProcessingError(const QString & message); void onInputModeChanged(InputMode); private: void onVeryFirstShowEvent(); void setZoomConstraint(); bool filtersSelectionMode(); void clearMessage(); void clearRightMessage(); void showRightMessage(const QString & text); void showMessage(const QString & text, int ms = 2000); void setIcons(); bool confirmAbortProcessingOnCloseRequest(); void enableWidgetList(bool on); bool askUserForGTKFavesImport(); void buildFiltersTree(); void retrieveFilterAndParametersFromPluginParameters(QString & hash, QList & parameters); static QString screenGeometries(); void updateFilters(bool internet); void abortProcessingOnCloseRequest(); void selectPreviewType(PreviewWidget::PreviewType previewType); void switchPreviewType(); enum class ProcessingAction { NoAction, Ok, Apply, Close, ForceQuit }; Ui::MainWindow * ui; ProcessingAction _pendingActionAfterCurrentProcessing; PreviewPosition _previewPosition = PreviewPosition::Right; bool _showEventReceived = false; bool _okButtonShouldApply = false; QIcon _expandIcon; QIcon _collapseIcon; QIcon * _expandCollapseIcon; int _messageTimerID; bool _lastExecutionOK; bool _newSession; bool _gtkFavesShouldBeImported; QVector _filterUpdateWidgets; FiltersPresenter * _filtersPresenter; GmicProcessor _processor; ulong _lastPreviewKeypointBurstUpdateTime; static bool _isAccepted; RunParameters _pluginParameters; VisibleTagSelector * _visibleTagSelector; QString _forceQuitText; }; } // namespace GmicQt #endif // GMIC_QT_MAINWINDOW_H ================================================ FILE: src/Misc.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Misc.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Misc.h" #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "HtmlTranslator.h" #include "Logger.h" #include "gmic.h" namespace { inline void skipSpaces(const char *& pc) { while (isspace(*pc)) { ++pc; } } inline bool isEmptyOrSpaceSequence(const char * pc) { while (*pc) { if (!isspace(*pc)) { return false; } ++pc; } return true; } } // namespace namespace GmicQt { QString commandFromOutputMessageMode(OutputMessageMode mode) { switch (mode) { case OutputMessageMode::Quiet: case OutputMessageMode::VerboseConsole: case OutputMessageMode::VerboseLogFile: case OutputMessageMode::Unspecified: return ""; case OutputMessageMode::VeryVerboseConsole: case OutputMessageMode::VeryVerboseLogFile: return "v 3"; case OutputMessageMode::DebugConsole: case OutputMessageMode::DebugLogFile: return "debug"; } return ""; } void appendWithSpace(QString & str, const QString & other) { if (str.isEmpty() || other.isEmpty()) { str += other; return; } str += QChar(' '); str += other; } void downcaseCommandTitle(QString & title) { QMap acronyms; // Acronyms QRegularExpression re("([A-Z0-9]{2,255})"); int index = 0; QRegularExpressionMatch match = re.match(title, index); while (match.hasMatch()) { QString pattern = match.captured(0); acronyms[match.capturedStart(0)] = pattern; index = match.capturedStart(0) + pattern.length(); match = re.match(title, index); } // 3D re.setPattern("([1-9])[dD] "); match = re.match(title); if (match.hasMatch()) { acronyms[match.capturedStart(0)] = match.captured(1) + "d "; } // B&W [Lab [YCbCr re.setPattern("(B&W|[ \\[]Lab|[ \\[]YCbCr)"); index = 0; match = re.match(title, index); while ((index = match.capturedStart(0)) != -1) { acronyms[index] = match.captured(1); index += match.capturedLength(1); match = re.match(title, index); } // Uppercase letter in last position, after a space re.setPattern(" ([A-Z])$"); match = re.match(title); if (match.hasMatch()) { acronyms[match.capturedStart()] = match.captured(0); } title = title.toLower(); QMap::const_iterator it = acronyms.cbegin(); while (it != acronyms.cend()) { title.replace(it.key(), it.value().length(), it.value()); ++it; } title[0] = title[0].toUpper(); } bool parseGmicFilterParameters(const QString & text, QStringList & args) { return parseGmicFilterParameters(text.toUtf8().constData(), args); } bool parseGmicFilterParameters(const char * text, QStringList & args) { args.clear(); if (!text) { return false; } skipSpaces(text); const char * pc = text; bool quoted = false; bool escaped = false; bool meaningfulSpaceFound = false; char * buffer = new char[strlen(pc)](); char * output = buffer; while (*pc && !((meaningfulSpaceFound = (!quoted && !escaped && isspace(*pc))))) { if (escaped) { *output++ = *pc++; escaped = false; } else if (*pc == '\\') { escaped = true; ++pc; } else if (*pc == '"') { quoted = !quoted; ++pc; } else if (!quoted && !escaped && (*pc == ',')) { *output = '\0'; args.push_back(QString::fromUtf8(buffer)); output = buffer; ++pc; } else { *output++ = *pc++; } } const bool endsWidthComma = (output == buffer) && (pc > text) && (!quoted && !escaped && (pc[-1] == ',')); if ((output != buffer) || endsWidthComma) { *output = '\0'; args.push_back(QString::fromUtf8(buffer)); } delete[] buffer; if (quoted || (meaningfulSpaceFound && !isEmptyOrSpaceSequence(pc))) { args.clear(); return false; } return true; } bool parseGmicUniqueFilterCommand(const char * text, QString & command, QString & arguments) { arguments.clear(); command.clear(); if (!text) { return false; } const char * commandBegin = text; skipSpaces(commandBegin); if (*commandBegin == '\0') { return false; } const char * pc = commandBegin; while (isalnum(*pc) || (*pc == '_')) { ++pc; } if ((*pc != '\0') && !isspace(*pc)) { return false; } const char * const commandEnd = pc; skipSpaces(pc); bool quoted = false; bool escaped = false; bool meaningfulSpaceFound = false; const char * argumentStart = pc; while (*pc && !((meaningfulSpaceFound = (!quoted && !escaped && isspace(*pc))))) { if (escaped) { escaped = false; } else if (*pc == '\\') { escaped = true; } else if (*pc == '"') { quoted = !quoted; } ++pc; } if (quoted || (meaningfulSpaceFound && !isEmptyOrSpaceSequence(pc))) { return false; } command = QString::fromUtf8(commandBegin, static_cast(commandEnd - commandBegin)); arguments = QString::fromUtf8(argumentStart, static_cast(pc - argumentStart)); return true; } QString escapeUnescapedQuotes(const QString & text) { std::string source_str = text.toStdString(); const char * pc = source_str.c_str(); std::vector output_str(2 * source_str.size() + 1, static_cast(0)); char * out = output_str.data(); bool escaped = false; while (*pc) { if (escaped) { escaped = false; } else if (*pc == '\\') { escaped = true; } else if (*pc == '"') { *out++ = '\\'; } *out++ = *pc++; } QString result = QString::fromUtf8(output_str.data()); return result; } QString filterFullPathWithoutTags(const QList & path, const QString & name) { QStringList noTags = {QString()}; for (QString str : path) { if (str.startsWith(WarningPrefix)) { str.remove(0, 1); } noTags.push_back(HtmlTranslator::removeTags(str)); } noTags.push_back(HtmlTranslator::removeTags(name)); return noTags.join('/'); } QString filterFullPathBasename(const QString & path) { QString result = path; result.remove(QRegularExpression("^.*/")); return result; } QString flattenGmicParameterList(const QList & list, const QVector & quotedParameters) { QString result; if (list.isEmpty()) { return result; } QList::const_iterator itList = list.constBegin(); QVector::const_iterator itQuoting = quotedParameters.constBegin(); result += (*itQuoting++) ? quotedString(*itList++) : (*itList++); while (itList != list.end()) { result += QString(",%1").arg((*itQuoting++) ? quotedString(*itList++) : (*itList++)); } return result; } QString mergedWithSpace(const QString & prefix, const QString & suffix) { if (prefix.isEmpty() || suffix.isEmpty()) { return prefix + suffix; } return prefix + QChar(' ') + suffix; } QString elided(const QString & text, int width) { if (text.length() <= width) { return text; } return text.left(std::max(0, width - 3)) + "..."; } QVector quotedParameters(const QList & parameters) { QVector result; for (const auto & str : parameters) { result.push_back(str.startsWith("\"")); } return result; } QStringList mergeSubsequences(const QStringList & sequence, const QVector & subSequenceLengths) { QStringList result; QVector lengths = subSequenceLengths; QStringList::const_iterator itInput = sequence.constBegin(); QVector::iterator itLength = lengths.begin(); while ((itInput != sequence.constEnd()) && (itLength != lengths.end())) { if (*itLength <= 0) { ++itLength; continue; } QString text = *itInput++; --(*itLength); while (*itLength > 0) { text += QString(",%1").arg(*itInput++); --(*itLength); } result.push_back(text); ++itLength; } if ((itInput != sequence.constEnd()) || (itLength != lengths.end())) { Logger::warning(QObject::tr("List %1 cannot be merged considering these runs: %2").arg(stringify(sequence)).arg(stringify(subSequenceLengths))); return QStringList(); } return result; } QStringList completePrefixFromFullList(const QStringList & prefix, const QStringList & fullList) { if (fullList.size() <= prefix.size()) { return prefix; } QStringList result = prefix; QStringList::const_iterator it = fullList.constBegin(); it += prefix.size(); while (it != fullList.constEnd()) { result.push_back(*it++); } return result; } QString quotedString(QString text) { return QString("\"%1\"").arg(escapeUnescapedQuotes(text)); } QStringList quotedStringList(const QStringList & stringList) { QStringList result; for (const auto & text : stringList) { result.push_back(quotedString(text)); } return result; } QString unescaped(const QString & text) { QByteArray ba = text.toUtf8(); gmic_library::cimg::strunescape(ba.data()); return QString::fromUtf8(ba.data()); } QString unquoted(const QString & text) { QRegularExpression re("^\\s*\"(.*)\"\\s*$"); auto match = re.match(text); if (match.hasMatch()) { return match.captured(1); } else { return text.trimmed(); } } QStringList expandParameterList(const QStringList & parameters, const QVector & sizes) { // FIXME : Handle errors here QStringList result; Q_ASSERT_X(parameters.size() == sizes.size(), __PRETTY_FUNCTION__, QString("Sizes are different (parameters: %1, sizes: %2)").arg(parameters.size()).arg(sizes.size()).toStdString().c_str()); QStringList::const_iterator itParam = parameters.constBegin(); auto itSize = sizes.constBegin(); while (itParam != parameters.constEnd() && itSize != sizes.constEnd()) { if (*itSize > 1) { result.append(itParam->split(",")); } else if (*itSize == 1) { result.push_back(*itParam); } else { Q_ASSERT_X((*itSize >= 1), __PRETTY_FUNCTION__, QString("Parameter size should be at least 1 (it is %1)").arg(*itSize).toStdString().c_str()); } ++itParam; ++itSize; } return result; } QString readableDuration(qint64 ms) { const qint64 HOUR = 3600000; const qint64 MINUTE = 60000; const qint64 SECOND = 1000; if (ms < SECOND) { return QString("%1 ms").arg(ms); } if (ms < MINUTE) { return QString("%1 s %2 ms").arg(ms / SECOND).arg(ms % SECOND); } const int hours = ms / HOUR; return QString("%1:%2:%3.%4") // .arg(ms / HOUR, (hours < 10) ? 2 : 0, 10, QChar('0')) // Hours .arg((ms % HOUR) / MINUTE, 2, 10, QChar('0')) // Minutes .arg((ms % MINUTE) / 1000, 2, 10, QChar('0')) // Seconds .arg(ms % SECOND, 3, 10, QChar('0')); // Milliseconds } QString readableSize(quint64 n) { if (n >= (1ul << 30)) { return QString(QObject::tr("%1 GiB")).arg(n / (double)(1 << 30), 0, 'f', 1); } else if (n >= (1ul << 20)) { return QString(QObject::tr("%1 MiB")).arg(n / (double)(1 << 20), 0, 'f', 1); } else if (n >= (1ul << 10)) { return QString(QObject::tr("%1 KiB")).arg(n / (double)(1 << 10), 0, 'f', 1); } else { return QString(QObject::tr("%1 B")).arg(n); } } qreal randomReal(qreal lowest, qreal highest) { QRandomGenerator * rng = QRandomGenerator::global(); auto min = rng->min(); auto max = rng->max(); auto t = (rng->generate() - min) / double(max - min); return (1 - t) * lowest + t * highest; } } // namespace GmicQt ================================================ FILE: src/Misc.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Utils.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_MISC_H #define GMIC_QT_MISC_H #include #include #include #include #include "GmicQt.h" namespace GmicQt { QString commandFromOutputMessageMode(OutputMessageMode mode); void appendWithSpace(QString & str, const QString & other); QString mergedWithSpace(const QString & prefix, const QString & suffix); void downcaseCommandTitle(QString & title); bool parseGmicFilterParameters(const char * text, QStringList & args); bool parseGmicFilterParameters(const QString & text, QStringList & args); bool parseGmicUniqueFilterCommand(const char * text, QString & command, QString & arguments); QString escapeUnescapedQuotes(const QString & text); QString filterFullPathWithoutTags(const QList & path, const QString & name); QString filterFullPathBasename(const QString & path); QString flattenGmicParameterList(const QList & list, const QVector & quotedParameters); QStringList expandParameterList(const QStringList & parameters, const QVector & sizes); QString elided(const QString & text, int width); QVector quotedParameters(const QList & parameters); QString quotedString(QString text); QStringList quotedStringList(const QStringList & stringList); QString unescaped(const QString & text); QStringList mergeSubsequences(const QStringList & sequence, const QVector & subSequenceLengths); QStringList completePrefixFromFullList(const QStringList & prefix, const QStringList & fullList); QString unquoted(const QString & text); inline QString elided80(const std::string & text) { return elided(QString::fromStdString(text), 80); } qreal randomReal(qreal lowest, qreal highest); QString readableDuration(qint64 ms); QString readableSize(quint64); template // QString stringify(const T & value) { QString result; QDebug(&result) << value; return result; } template // inline void setValueIfNotNullPointer(T * pointer, const T & value) { if (pointer) { *pointer = value; } } inline bool notEmpty(const QString & text) { return !text.isEmpty(); } inline bool notEmpty(const std::string & text) { return !text.empty(); } template T clamped(const T & value, const T & min, const T & max) { return (value < min) ? min : (value > max) ? max : value; } } // namespace GmicQt #endif // GMIC_QT_MISC_H ================================================ FILE: src/OverrideCursor.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file OverrideCursor.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "OverrideCursor.h" #include namespace GmicQt { void OverrideCursor::set(Qt::CursorShape shape) { if (QApplication::overrideCursor() && QApplication::overrideCursor()->shape() == shape) { return; } while (QApplication::overrideCursor()) { QApplication::restoreOverrideCursor(); } QApplication::setOverrideCursor(shape); } void OverrideCursor::setNormal() { while (QApplication::overrideCursor()) { QApplication::restoreOverrideCursor(); } } } // namespace GmicQt ================================================ FILE: src/OverrideCursor.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file OverrideCursor.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_OVERRIDECURSOR_H #define GMIC_QT_OVERRIDECURSOR_H #include namespace GmicQt { class OverrideCursor { public: OverrideCursor() = delete; static void set(Qt::CursorShape shape); static void setNormal(); private: }; } // namespace GmicQt #endif // GMIC_QT_OVERRIDECURSOR_H ================================================ FILE: src/ParametersCache.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ParametersCache.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "ParametersCache.h" #include #include #include #include #include #include #include #include #include "Common.h" #include "Globals.h" #include "Logger.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { QHash> ParametersCache::_parametersCache; QHash ParametersCache::_inOutPanelStates; QHash> ParametersCache::_visibilityStates; void ParametersCache::load(bool loadFiltersParameters) { // Load JSON file _parametersCache.clear(); _inOutPanelStates.clear(); _visibilityStates.clear(); QString jsonFilename = QString("%1%2").arg(gmicConfigPath(true), PARAMETERS_CACHE_FILENAME); QFile jsonFile(jsonFilename); if (!jsonFile.exists()) { return; } if (jsonFile.open(QFile::ReadOnly)) { QJsonDocument jsonDoc; QByteArray allFile = jsonFile.readAll(); if (allFile.startsWith("{")) { // Was created in debug mode jsonDoc = QJsonDocument::fromJson(allFile); } else { jsonDoc = QJsonDocument::fromJson(qUncompress(allFile)); } if (jsonDoc.isNull()) { Logger::warning(QString("Cannot parse ") + jsonFilename); Logger::warning("Last filters parameters are lost!"); } else { if (!jsonDoc.isObject()) { Logger::error(QString("JSON file format is not correct (") + jsonFilename + ")"); } else { QJsonObject documentObject = jsonDoc.object(); QJsonObject::iterator itFilter = documentObject.begin(); while (itFilter != documentObject.end()) { QString hash = itFilter.key(); QJsonObject filterObject = itFilter.value().toObject(); // Retrieve parameters if (loadFiltersParameters) { QJsonValue parameters = filterObject.value("parameters"); if (!parameters.isUndefined()) { QJsonArray array = parameters.toArray(); QStringList values; for (const QJsonValueRef v : array) { values.push_back(v.toString()); } _parametersCache[hash] = values; } QJsonValue visibilityStates = filterObject.value("visibility_states"); if (!visibilityStates.isUndefined()) { QJsonArray array = visibilityStates.toArray(); QList values; for (const QJsonValueRef v : array) { values.push_back(v.toInt()); } _visibilityStates[hash] = values; } } QJsonValue state = filterObject.value("in_out_state"); // Retrieve Input/Output state if (!state.isUndefined()) { QJsonObject stateObject = state.toObject(); _inOutPanelStates[hash] = InputOutputState::fromJSONObject(stateObject); } ++itFilter; } } } } else { Logger::error("Cannot open " + jsonFilename); Logger::error("Parameters cannot be restored"); } } void ParametersCache::save() { // JSON Document format // // { // "51d288e6f1c6e531cc61289f17e34d8a": { // "parameters": [ // "6", // "21.06", // "1.36", // "5", // "0" // ], // "in_out_state": { // "InputLayers": 1, // "OutputMessages": 5, // "OutputMode": 100, // "PreviewMode": 100 // } // "visibility_states": [ // 0, // 1, // 2, // 0 // ] // } // } QJsonObject documentObject; // Add Input/Output states QHash::iterator itState = _inOutPanelStates.begin(); while (itState != _inOutPanelStates.end()) { QJsonObject filterObject; QJsonObject jsonState; itState.value().toJSONObject(jsonState); filterObject.insert("in_out_state", jsonState); documentObject.insert(itState.key(), filterObject); ++itState; } // Add filters parameters QHash>::iterator itParams = _parametersCache.begin(); while (itParams != _parametersCache.end()) { QJsonObject filterObject; QJsonObject::iterator entry = documentObject.find(itParams.key()); if (entry != documentObject.end()) { filterObject = entry.value().toObject(); } // Add the parameters list QJsonArray array; QStringList list = itParams.value(); for (const QString & str : list) { array.push_back(str); } filterObject.insert("parameters", array); documentObject.insert(itParams.key(), filterObject); ++itParams; } // Add visibility states QHash>::iterator itVisibilities = _visibilityStates.begin(); while (itVisibilities != _visibilityStates.end()) { QJsonObject filterObject; QJsonObject::iterator entry = documentObject.find(itVisibilities.key()); if (entry != documentObject.end()) { filterObject = entry.value().toObject(); } // Add the parameters list QJsonArray array; QList states = itVisibilities.value(); for (const int & state : states) { array.push_back(state); } filterObject.insert("visibility_states", array); documentObject.insert(itVisibilities.key(), filterObject); ++itVisibilities; } QJsonDocument jsonDoc(documentObject); QString jsonFilename = QString("%1%2").arg(gmicConfigPath(true), PARAMETERS_CACHE_FILENAME); #ifdef _GMIC_QT_DEBUG_ QByteArray array(jsonDoc.toJson()); #else QByteArray array(qCompress(jsonDoc.toJson(QJsonDocument::Compact))); #endif if (safelyWrite(array, jsonFilename)) { // Remove obsolete 2.0.0 pre-release files const QString & path = gmicConfigPath(true); QFile::remove(path + "gmic_qt_parameters.dat"); QFile::remove(path + "gmic_qt_parameters.json"); QFile::remove(path + "gmic_qt_parameters.json.bak"); QFile::remove(path + "gmic_qt_parameters_json.dat"); } else { Logger::error("Cannot write " + jsonFilename); Logger::error("Parameters cannot be saved"); } } void ParametersCache::setValues(const QString & hash, const QList & values) { _parametersCache[hash] = values; } QList ParametersCache::getValues(const QString & hash) { if (_parametersCache.contains(hash)) { return _parametersCache[hash]; } return QList(); } void ParametersCache::setVisibilityStates(const QString & hash, const QList & states) { _visibilityStates[hash] = states; } QList ParametersCache::getVisibilityStates(const QString & hash) { if (_visibilityStates.contains(hash)) { return _visibilityStates[hash]; } return QList(); } void ParametersCache::remove(const QString & hash) { _parametersCache.remove(hash); _inOutPanelStates.remove(hash); _visibilityStates.remove(hash); } InputOutputState ParametersCache::getInputOutputState(const QString & hash) { if (_inOutPanelStates.contains(hash)) { return _inOutPanelStates[hash]; } return {InputMode::Unspecified, DefaultOutputMode}; } void ParametersCache::setInputOutputState(const QString & hash, const InputOutputState & state, const InputMode defaultInputMode) { if ((state == InputOutputState(defaultInputMode, DefaultOutputMode)) // || (state == InputOutputState(InputMode::Unspecified, DefaultOutputMode))) { _inOutPanelStates.remove(hash); return; } _inOutPanelStates[hash] = state; } void ParametersCache::cleanup(const QSet & hashesToKeep) { QSet obsoleteHashes; // Build set of no longer used parameters QHash>::iterator itParam = _parametersCache.begin(); while (itParam != _parametersCache.end()) { if (!hashesToKeep.contains(itParam.key())) { obsoleteHashes.insert(itParam.key()); } ++itParam; } for (const QString & h : obsoleteHashes) { _parametersCache.remove(h); } obsoleteHashes.clear(); // Build set of no longer used In/Out states QHash::iterator itState = _inOutPanelStates.begin(); while (itState != _inOutPanelStates.end()) { if (!hashesToKeep.contains(itState.key())) { obsoleteHashes.insert(itState.key()); } ++itState; } for (const QString & h : obsoleteHashes) { _inOutPanelStates.remove(h); } obsoleteHashes.clear(); } } // namespace GmicQt ================================================ FILE: src/ParametersCache.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ParametersCache.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_PARAMETERSCACHE_H #define GMIC_QT_PARAMETERSCACHE_H #include #include #include #include "InputOutputState.h" namespace GmicQt { class ParametersCache { public: static void load(bool loadFiltersParameters); static void save(); static void setValues(const QString & hash, const QList & values); static QList getValues(const QString & hash); static void setVisibilityStates(const QString & hash, const QList & states); static QList getVisibilityStates(const QString & hash); static void remove(const QString & hash); static InputOutputState getInputOutputState(const QString & hash); static void setInputOutputState(const QString & hash, const InputOutputState & state, const InputMode defaultInputMode); static void cleanup(const QSet & hashesToKeep); private: static QHash> _parametersCache; static QHash _inOutPanelStates; static QHash> _visibilityStates; }; } // namespace GmicQt #endif // GMIC_QT_PARAMETERSCACHE_H ================================================ FILE: src/PersistentMemory.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file PersistentMemory.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "PersistentMemory.h" #include "gmic.h" namespace GmicQt { std::unique_ptr> PersistentMemory::_image; gmic_library::gmic_image & PersistentMemory::image() { if (!_image) { _image.reset(new gmic_library::gmic_image); } return *_image; } void PersistentMemory::clear() { image().assign(); } void PersistentMemory::move_from(gmic_library::gmic_image & buffer) { buffer.move_to(image()); } } // namespace GmicQt ================================================ FILE: src/PersistentMemory.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file PersistentMemory.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT__PERSISTENTMEMORY_H #define GMIC_QT__PERSISTENTMEMORY_H #include namespace gmic_library { template struct gmic_image; } namespace GmicQt { class PersistentMemory { public: static gmic_library::gmic_image & image(); static void clear(); static void move_from(gmic_library::gmic_image & buffer); private: static std::unique_ptr> _image; }; } // namespace GmicQt #endif // GMIC_QT__PERSISTENTMEMORY_H ================================================ FILE: src/Settings.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Settings.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Settings.h" #include "Globals.h" #include "GmicStdlib.h" #include "Host/GmicQtHost.h" #include "IconLoader.h" #include "SourcesWidget.h" #include #include #include namespace { GmicQt::OutputMessageMode filterDeprecatedOutputMessageMode(const GmicQt::OutputMessageMode & mode) { if (mode == GmicQt::OutputMessageMode::VerboseLayerName_DEPRECATED) { return GmicQt::DefaultOutputMessageMode; } return mode; } } // namespace namespace GmicQt { bool Settings::_visibleLogos; bool Settings::_darkThemeEnabled; QString Settings::_languageCode; bool Settings::_filterTranslationEnabled = false; MainWindow::PreviewPosition Settings::_previewPosition; bool Settings::_nativeColorDialogs; bool Settings::_nativeFileDialogs; int Settings::_updatePeriodicity; int Settings::_previewTimeout = 16; OutputMessageMode Settings::_outputMessageMode; bool Settings::_previewZoomAlwaysEnabled = false; bool Settings::_notifyFailedStartupUpdate = true; bool Settings::_highDPI = false; QStringList Settings::_filterSources; SourcesWidget::OfficialFilters Settings::_officialFilterSource; const QColor Settings::CheckBoxBaseColor(83, 83, 83); const QColor Settings::CheckBoxTextColor(255, 255, 255); QColor Settings::UnselectedFilterTextColor; QString Settings::FolderParameterDefaultValue; QString Settings::FileParameterDefaultPath; QIcon Settings::AddIcon; QIcon Settings::RemoveIcon; QString Settings::GroupSeparator; QString Settings::DecimalPoint('.'); QString Settings::NegativeSign('-'); void Settings::load(UserInterfaceMode userInterfaceMode) { QSettings settings; _visibleLogos = settings.value("LogosAreVisible", true).toBool(); _darkThemeEnabled = settings.value(DARK_THEME_KEY, GmicQtHost::DarkThemeIsDefault).toBool(); _languageCode = settings.value(LANGUAGE_CODE_KEY, QString()).toString(); if (settings.value("Config/PreviewPosition", "Right").toString() == "Left") { _previewPosition = MainWindow::PreviewPosition::Left; } else { _previewPosition = MainWindow::PreviewPosition::Right; } _filterTranslationEnabled = settings.value(ENABLE_FILTER_TRANSLATION, false).toBool(); _nativeColorDialogs = settings.value("Config/NativeColorDialogs", false).toBool(); _nativeFileDialogs = settings.value("Config/NativeFileDialogs", false).toBool(); _updatePeriodicity = settings.value(INTERNET_UPDATE_PERIODICITY_KEY, INTERNET_DEFAULT_PERIODICITY).toInt(); FolderParameterDefaultValue = settings.value("FolderParameterDefaultValue", QDir::homePath()).toString(); FileParameterDefaultPath = settings.value("FileParameterDefaultPath", QDir::homePath()).toString(); _previewTimeout = settings.value("PreviewTimeout", 16).toInt(); _previewZoomAlwaysEnabled = settings.value("AlwaysEnablePreviewZoom", false).toBool(); _outputMessageMode = filterDeprecatedOutputMessageMode((GmicQt::OutputMessageMode)settings.value("OutputMessageMode", static_cast(GmicQt::DefaultOutputMessageMode)).toInt()); _notifyFailedStartupUpdate = settings.value("Config/NotifyIfStartupUpdateFails", true).toBool(); _highDPI = settings.value(HIGHDPI_KEY, false).toBool(); _filterSources = settings.value("Config/FilterSources", SourcesWidget::defaultList()).toStringList(); QString officialFilterSource = settings.value(OFFICIAL_FILTER_SOURCE_KEY, QString("EnabledWithUpdates")).toString(); if (officialFilterSource == QString("Disable")) { _officialFilterSource = SourcesWidget::OfficialFilters::Disabled; } else if (officialFilterSource == QString("EnabledWithoutUpdates")) { _officialFilterSource = SourcesWidget::OfficialFilters::EnabledWithoutUpdates; } else if (officialFilterSource == QString("EnabledWithUpdates")) { _officialFilterSource = SourcesWidget::OfficialFilters::EnabledWithUpdates; } if (userInterfaceMode != UserInterfaceMode::Silent) { AddIcon = IconLoader::load("list-add"); RemoveIcon = IconLoader::load("list-remove"); } QLocale locale; GroupSeparator = locale.groupSeparator(); DecimalPoint = locale.decimalPoint(); NegativeSign = locale.negativeSign(); } bool Settings::visibleLogos() { return _visibleLogos; } void Settings::setVisibleLogos(bool on) { _visibleLogos = on; } bool Settings::darkThemeEnabled() { return _darkThemeEnabled; } void Settings::setDarkThemeEnabled(bool on) { _darkThemeEnabled = on; } QString Settings::languageCode() { return _languageCode; } void Settings::setLanguageCode(const QString & code) { _languageCode = code; } bool Settings::filterTranslationEnabled() { return _filterTranslationEnabled; } void Settings::setFilterTranslationEnabled(bool on) { _filterTranslationEnabled = on; } MainWindow::PreviewPosition Settings::previewPosition() { return _previewPosition; } void Settings::setPreviewPosition(MainWindow::PreviewPosition position) { _previewPosition = position; } bool Settings::nativeColorDialogs() { return _nativeColorDialogs; } void Settings::setNativeColorDialogs(bool on) { _nativeColorDialogs = on; } bool Settings::nativeFileDialogs() { return _nativeFileDialogs; } void Settings::setNativeFileDialogs(bool on) { _nativeFileDialogs = on; } int Settings::updatePeriodicity() { return _updatePeriodicity; } void Settings::setUpdatePeriodicity(int hours) { _updatePeriodicity = hours; } int Settings::previewTimeout() { return _previewTimeout; } void Settings::setPreviewTimeout(int seconds) { _previewTimeout = seconds; } OutputMessageMode Settings::outputMessageMode() { return _outputMessageMode; } void Settings::setOutputMessageMode(OutputMessageMode mode) { _outputMessageMode = mode; } bool Settings::previewZoomAlwaysEnabled() { return _previewZoomAlwaysEnabled; } void Settings::setPreviewZoomAlwaysEnabled(bool on) { _previewZoomAlwaysEnabled = on; } bool Settings::notifyFailedStartupUpdate() { return _notifyFailedStartupUpdate; } void Settings::setNotifyFailedStartupUpdate(bool on) { _notifyFailedStartupUpdate = on; } bool Settings::highDPIEnabled() { return _highDPI; } void Settings::setHighDPIEnabled(bool on) { _highDPI = on; } const QStringList & Settings::filterSources() { return _filterSources; } void Settings::setFilterSources(const QStringList & sources) { _filterSources = sources; } SourcesWidget::OfficialFilters Settings::officialFilterSource() { return _officialFilterSource; } void Settings::setOfficialFilterSource(SourcesWidget::OfficialFilters status) { _officialFilterSource = status; } void Settings::save(QSettings & settings) { removeObsoleteKeys(settings); settings.setValue("LogosAreVisible", _visibleLogos); settings.setValue(LANGUAGE_CODE_KEY, _languageCode); settings.setValue(ENABLE_FILTER_TRANSLATION, _filterTranslationEnabled); settings.setValue("Config/PreviewPosition", (_previewPosition == MainWindow::PreviewPosition::Left) ? "Left" : "Right"); settings.setValue("Config/NativeColorDialogs", _nativeColorDialogs); settings.setValue("Config/NativeFileDialogs", _nativeFileDialogs); settings.setValue(INTERNET_UPDATE_PERIODICITY_KEY, _updatePeriodicity); settings.setValue("FolderParameterDefaultValue", FolderParameterDefaultValue); settings.setValue("FileParameterDefaultPath", FileParameterDefaultPath); settings.setValue("PreviewTimeout", _previewTimeout); settings.setValue("OutputMessageMode", (int)_outputMessageMode); settings.setValue("AlwaysEnablePreviewZoom", _previewZoomAlwaysEnabled); settings.setValue("Config/NotifyIfStartupUpdateFails", _notifyFailedStartupUpdate); settings.setValue(HIGHDPI_KEY, _highDPI); settings.setValue("Config/FilterSources", _filterSources); switch (_officialFilterSource) { case SourcesWidget::OfficialFilters::Disabled: settings.setValue(OFFICIAL_FILTER_SOURCE_KEY, "Disable"); break; case SourcesWidget::OfficialFilters::EnabledWithoutUpdates: settings.setValue(OFFICIAL_FILTER_SOURCE_KEY, "EnabledWithoutUpdates"); break; case SourcesWidget::OfficialFilters::EnabledWithUpdates: settings.setValue(OFFICIAL_FILTER_SOURCE_KEY, "EnabledWithUpdates"); break; } // Remove obsolete keys (2.0.0 pre-release) settings.remove("Config/UseFaveInputMode"); settings.remove("Config/UseFaveOutputMode"); settings.remove("Config/UseFaveOutputMessages"); settings.remove("Config/UseFavePreviewMode"); } void Settings::removeObsoleteKeys(QSettings & settings) { settings.remove(QString("LastExecution/host_%1/PreviewMode").arg(GmicQtHost::ApplicationShortname)); settings.remove(QString("LastExecution/host_%1/GmicEnvironment").arg(GmicQtHost::ApplicationShortname)); settings.remove(QString("LastExecution/host_%1/QuotedParameters").arg(GmicQtHost::ApplicationShortname)); settings.remove(QString("LastExecution/host_%1/GmicStatus").arg(GmicQtHost::ApplicationShortname)); } } // namespace GmicQt ================================================ FILE: src/Settings.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Settings.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_SETTINGS_H #define GMIC_QT_SETTINGS_H #include #include #include #include #include #include "GmicQt.h" #include "MainWindow.h" #include "SourcesWidget.h" class QSettings; namespace GmicQt { class Settings { public: Settings() = delete; static void setVisibleLogos(bool); static bool visibleLogos(); static bool darkThemeEnabled(); static void setDarkThemeEnabled(bool); static QString languageCode(); static void setLanguageCode(const QString &); static bool filterTranslationEnabled(); static void setFilterTranslationEnabled(bool); static MainWindow::PreviewPosition previewPosition(); static void setPreviewPosition(MainWindow::PreviewPosition); static bool nativeColorDialogs(); static void setNativeColorDialogs(bool); static bool nativeFileDialogs(); static void setNativeFileDialogs(bool); static int updatePeriodicity(); static void setUpdatePeriodicity(int hours); static int previewTimeout(); static void setPreviewTimeout(int seconds); static OutputMessageMode outputMessageMode(); static void setOutputMessageMode(OutputMessageMode mode); static bool previewZoomAlwaysEnabled(); static void setPreviewZoomAlwaysEnabled(bool); static bool notifyFailedStartupUpdate(); static void setNotifyFailedStartupUpdate(bool); static bool highDPIEnabled(); static void setHighDPIEnabled(bool); static const QStringList & filterSources(); static void setFilterSources(const QStringList &); static SourcesWidget::OfficialFilters officialFilterSource(); static void setOfficialFilterSource(SourcesWidget::OfficialFilters); static void save(QSettings &); static void load(UserInterfaceMode userInterfaceMode); static const QColor CheckBoxTextColor; static const QColor CheckBoxBaseColor; static QColor UnselectedFilterTextColor; static QString FolderParameterDefaultValue; static QString FileParameterDefaultPath; static QIcon AddIcon; static QIcon RemoveIcon; static QString GroupSeparator; static QString DecimalPoint; static QString NegativeSign; private: static void removeObsoleteKeys(QSettings &); static bool _visibleLogos; static bool _darkThemeEnabled; static QString _languageCode; static bool _filterTranslationEnabled; static MainWindow::PreviewPosition _previewPosition; static bool _nativeColorDialogs; static bool _nativeFileDialogs; static int _updatePeriodicity; static int _previewTimeout; static OutputMessageMode _outputMessageMode; static bool _previewZoomAlwaysEnabled; static bool _notifyFailedStartupUpdate; static bool _highDPI; static QStringList _filterSources; static SourcesWidget::OfficialFilters _officialFilterSource; }; } // namespace GmicQt #endif // GMIC_QT_SETTINGS_H ================================================ FILE: src/SourcesWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file SourcesWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "SourcesWidget.h" #include #include #include #include #include #include #include #include #include #include #include #include "GmicStdlib.h" #include "IconLoader.h" #include "Settings.h" #include "ui_sourceswidget.h" namespace GmicQt { SourcesWidget::SourcesWidget(QWidget * parent) : QWidget(parent), ui(new Ui::SourcesWidget) { ui->setupUi(this); QAction * removeAction = new QAction(this); removeAction->setIcon(IconLoader::load("user-trash")); removeAction->setShortcutContext(Qt::WindowShortcut); removeAction->setShortcut(Qt::Key_Delete); removeAction->setToolTip(tr("Remove source (Delete)")); connect(removeAction, &QAction::triggered, this, &SourcesWidget::removeCurrentSource); ui->tbTrash->setDefaultAction(removeAction); ui->tbUp->setIcon(IconLoader::load("draw-arrow-up")); ui->tbUp->setToolTip(tr("Move source up")); ui->tbDown->setIcon(IconLoader::load("draw-arrow-down")); ui->tbDown->setToolTip(tr("Move source down")); ui->tbOpen->setIcon(IconLoader::load("folder")); ui->tbOpen->setToolTip(tr("Add local file (dialog)")); ui->tbReset->setIcon(IconLoader::load("view-refresh")); ui->tbReset->setToolTip(tr("Reset filter sources")); connect(ui->tbOpen, &QPushButton::clicked, this, &SourcesWidget::onOpenFile); connect(ui->tbNew, &QPushButton::clicked, this, &SourcesWidget::onAddNew); connect(ui->tbReset, &QPushButton::clicked, this, &SourcesWidget::setToDefault); connect(ui->tbUp, &QPushButton::clicked, this, &SourcesWidget::onMoveUp); connect(ui->tbDown, &QPushButton::clicked, this, &SourcesWidget::onMoveDown); connect(ui->list, &QListWidget::currentItemChanged, this, &SourcesWidget::onSourceSelected); connect(ui->leURL, &QLineEdit::textChanged, [this](QString text) { // QListWidgetItem * item = ui->list->currentItem(); if (item) { ui->list->currentItem()->setText(text); } }); ui->list->addItems(_sourcesAtOpening = Settings::filterSources()); #ifdef _IS_WINDOWS_ ui->labelVariables->setText(tr("Macros: $HOME %USERPROFILE% $VERSION")); #else ui->labelVariables->setText(tr("Macros: $HOME $VERSION")); #endif ui->cbOfficialFilters->addItem(tr("Disable"), int(OfficialFilters::Disabled)); ui->cbOfficialFilters->addItem(tr("Enable without updates"), int(OfficialFilters::EnabledWithoutUpdates)); ui->cbOfficialFilters->addItem(tr("Enable with updates (recommended)"), int(OfficialFilters::EnabledWithUpdates)); switch (_officialFiltersAtOpening = Settings::officialFilterSource()) { case OfficialFilters::Disabled: ui->cbOfficialFilters->setCurrentIndex(0); break; case OfficialFilters::EnabledWithoutUpdates: ui->cbOfficialFilters->setCurrentIndex(1); break; case OfficialFilters::EnabledWithUpdates: ui->cbOfficialFilters->setCurrentIndex(2); break; } #ifdef _IS_WINDOWS_ ui->labelVariables->setText(tr("Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources.\n" "VERSION is also a predefined variable that stands for the G'MIC version number (currently %1).") .arg(GmicQt::GmicVersion)); #else ui->labelVariables->setText(tr("Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources.\n" "VERSION is also a predefined variable that stands for the G'MIC version number (currently %1).") .arg(GmicQt::GmicVersion)); #endif _newItemText = tr("New source"); enableButtons(); } SourcesWidget::~SourcesWidget() { delete ui; } QStringList SourcesWidget::list() const { QStringList result; const int count = ui->list->count(); for (int row = 0; row < count; ++row) { QString text = ui->list->item(row)->text(); if (!text.isEmpty() && (text != _newItemText)) { result.push_back(text); } } return result; } QStringList SourcesWidget::defaultList() { QStringList result; #ifdef _IS_WINDOWS_ result << QString("%GMIC_PATH%%1user.gmic").arg(QDir::separator()); result << QString("%USERPROFILE%%1user.gmic").arg(QDir::separator()); #else result << "${GMIC_PATH}/.gmic"; result << "${HOME}/.gmic"; #endif return result; } void SourcesWidget::saveSettings() { Settings::setFilterSources(list()); Settings::setOfficialFilterSource((OfficialFilters)ui->cbOfficialFilters->currentData().toInt()); } bool SourcesWidget::sourcesModified(bool & internetUpdateRequired) { internetUpdateRequired = false; const QStringList currentSourceList = list(); const OfficialFilters currentOfficialFilters = OfficialFilters(ui->cbOfficialFilters->currentData().toInt()); if ((currentSourceList == _sourcesAtOpening) && (_officialFiltersAtOpening == currentOfficialFilters)) { return false; } QSet remoteSourcesBefore; for (const QString & source : _sourcesAtOpening) { if (source.startsWith("http://") || source.startsWith("https://")) { remoteSourcesBefore.insert(source); } } QSet remoteSourcesAfter; for (const QString & source : currentSourceList) { if (source.startsWith("http://") || source.startsWith("https://")) { remoteSourcesAfter.insert(source); } } if (!(remoteSourcesAfter - remoteSourcesBefore).isEmpty()) { internetUpdateRequired = true; } if ((currentOfficialFilters == OfficialFilters::EnabledWithUpdates) // && (currentOfficialFilters != _officialFiltersAtOpening)) { internetUpdateRequired = true; } return true; } void SourcesWidget::onOpenFile() { const QFileDialog::Options options = Settings::nativeFileDialogs() ? QFileDialog::Options() : QFileDialog::DontUseNativeDialog; QString url = ui->leURL->text(); QString folder; if (!url.isEmpty() && !url.startsWith("http://") && !url.startsWith("https://")) { folder = QFileInfo(url).absoluteDir().absolutePath(); } else { folder = QDir::homePath(); } QString filename = QFileDialog::getOpenFileName(this, tr("Select a file"), folder, QString(), nullptr, options); if (!filename.isEmpty()) { if (ui->leURL->text() == _newItemText) { ui->leURL->setText(filename); } else { ui->list->addItem(filename); ui->list->setCurrentRow(ui->list->count() - 1); enableButtons(); } } } void SourcesWidget::onAddNew() { ui->list->addItem(_newItemText); ui->list->setCurrentRow(ui->list->count() - 1); ui->leURL->selectAll(); ui->leURL->setFocus(); } void SourcesWidget::setToDefault() { ui->list->clear(); ui->list->addItems(defaultList()); for (int i = 0; i < ui->cbOfficialFilters->count(); ++i) { if (ui->cbOfficialFilters->itemData(i).toInt() == int(OfficialFilters::EnabledWithUpdates)) { ui->cbOfficialFilters->setCurrentIndex(i); break; } } } void SourcesWidget::enableButtons() { int index = ui->list->currentRow(); if (index == -1) { ui->tbUp->setEnabled(false); ui->tbDown->setEnabled(false); ui->tbTrash->defaultAction()->setEnabled(false); ui->leURL->clear(); ui->leURL->setEnabled(false); return; } ui->tbUp->setEnabled(index > 0); ui->tbDown->setEnabled(index < ui->list->count() - 1); ui->tbTrash->defaultAction()->setEnabled(true); ui->leURL->setEnabled(true); } void SourcesWidget::removeCurrentSource() { QListWidgetItem * item = ui->list->currentItem(); int row = ui->list->currentRow(); if (item) { disconnect(ui->list, &QListWidget::currentItemChanged, this, nullptr); ui->list->removeItemWidget(item); delete item; connect(ui->list, &QListWidget::currentItemChanged, this, &SourcesWidget::onSourceSelected, Qt::UniqueConnection); if (ui->list->count()) { ui->list->setCurrentRow(std::min(ui->list->count() - 1, row)); onSourceSelected(); } enableButtons(); } } void SourcesWidget::onMoveDown() { int row = ui->list->currentRow(); if (row >= ui->list->count() - 1) { return; } QString textDown = ui->list->item(row + 1)->text(); ui->list->item(row + 1)->setText(ui->list->item(row)->text()); ui->list->item(row)->setText(textDown); ui->list->setCurrentRow(row + 1); } void SourcesWidget::onMoveUp() { int row = ui->list->currentRow(); if (row < 1) { return; } QString textUp = ui->list->item(row - 1)->text(); ui->list->item(row - 1)->setText(ui->list->item(row)->text()); ui->list->item(row)->setText(textUp); ui->list->setCurrentRow(row - 1); } void SourcesWidget::onSourceSelected() { enableButtons(); cleanupEmptySources(); QListWidgetItem * item = ui->list->currentItem(); if (item) { ui->leURL->setText(item->text()); } } void SourcesWidget::cleanupEmptySources() { QListWidgetItem * currentItem = ui->list->currentItem(); QVector removableItems; for (int row = 0; row < ui->list->count(); ++row) { QListWidgetItem * item = ui->list->item(row); if (item && (item != currentItem) && (item->text().isEmpty() || (item->text() == _newItemText))) { removableItems.push_back(item); } } for (QListWidgetItem * item : removableItems) { ui->list->removeItemWidget(item); delete item; } if (currentItem) { for (int row = 0; row < ui->list->count(); ++row) { if (ui->list->item(row) == currentItem) { ui->list->setCurrentRow(row); break; } } } } } // namespace GmicQt ================================================ FILE: src/SourcesWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file SourcesWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_SOURCESWIDGET_H #define GMIC_QT_SOURCESWIDGET_H #include #include #include namespace Ui { class SourcesWidget; } class QSettings; namespace GmicQt { class SourcesWidget : public QWidget { Q_OBJECT public: enum class OfficialFilters { Disabled, EnabledWithoutUpdates, EnabledWithUpdates }; explicit SourcesWidget(QWidget * parent = nullptr); ~SourcesWidget() override; QStringList list() const; static QStringList defaultList(); void saveSettings(); bool sourcesModified(bool & internetUpdateRequired); private slots: void onOpenFile(); void onAddNew(); void setToDefault(); void enableButtons(); void removeCurrentSource(); void onMoveDown(); void onMoveUp(); void onSourceSelected(); private: void cleanupEmptySources(); Ui::SourcesWidget * ui; QString _newItemText; QStringList _sourcesAtOpening; OfficialFilters _officialFiltersAtOpening; }; } // namespace GmicQt #endif // GMIC_QT_SOURCESWIDGET_H ================================================ FILE: src/Tags.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Tags.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Tags.h" #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "Settings.h" namespace GmicQt { const TagColorSet TagColorSet::Full(TagColorSet::_fullMask); const TagColorSet TagColorSet::ActualColors(TagColorSet::_fullMask &(~1u)); const TagColorSet TagColorSet::Empty(0); QString TagAssets::_markerHtml[static_cast(TagColor::Count)]; QIcon TagAssets::_menuIcons[static_cast(TagColor::Count)]; QIcon TagAssets::_menuIconsWithCheck[static_cast(TagColor::Count)]; QIcon TagAssets::_menuIconsWithDisk[static_cast(TagColor::Count)]; unsigned int TagAssets::_markerSideSize[static_cast(TagColor::Count)]; QColor TagAssets::colors[static_cast(TagColor::Count)] = {QColor(0, 0, 0, 0), QColor(250, 68, 113), QColor(179, 228, 59), QColor(121, 171, 255), QColor(117, 225, 242), QColor(188, 154, 234), QColor(236, 224, 105)}; const QString & TagAssets::markerHtml(const TagColor color, unsigned int height) { if (!(height % 2)) { ++height; } const int iColor = (int)color; if (!_markerHtml[iColor].isEmpty() && _markerSideSize[iColor] == height) { return _markerHtml[iColor]; } QImage image(height, height, QImage::Format_RGBA8888); image.fill(QColor(0, 0, 0, 0)); if (color != TagColor::None) { QPainter painter(&image); painter.setRenderHint(QPainter::Antialiasing, true); QPen pen = painter.pen(); pen.setWidth(1); pen.setColor(QColor(0, 0, 0, 128)); painter.setPen(pen); painter.setBrush(colors[iColor]); painter.drawEllipse(1, 1, height - 2, height - 2); } QByteArray ba; QBuffer buffer(&ba); image.save(&buffer, "png"); _markerSideSize[iColor] = height; _markerHtml[iColor] = QString("").arg(QString(ba.toBase64())); return _markerHtml[iColor]; } const QIcon & TagAssets::menuIcon(TagColor color, IconMark mark) { const int iColor = (int)color; if (_menuIcons[iColor].isNull()) { QPixmap bg(64, 64); QFont font; font.setPixelSize(60); { bg.fill(QColor(0, 0, 0, 0)); QPainter p(&bg); p.setRenderHint(QPainter::Antialiasing, true); if (color == TagColor::None) { QPen pen; pen.setWidth(3); if (Settings::darkThemeEnabled()) { pen.setColor(QColor(40, 40, 40)); p.setBrush(Settings::CheckBoxBaseColor); } else { QPalette palette; pen.setColor(palette.text().color()); p.setBrush(palette.window().color()); } p.setPen(pen); p.drawEllipse(bg.rect().adjusted(2, 2, -2, -2)); } else { p.setBrush(colors[iColor]); p.drawRoundedRect(bg.rect(), 15, 15); } _menuIcons[iColor] = QIcon(bg); } QColor markColor = Qt::black; if (color == TagColor::None) { markColor = Settings::darkThemeEnabled() ? QColor(170, 170, 170) : QPalette().text().color(); } QPixmap pixmap(bg); { QPainter p(&pixmap); p.setFont(font); p.setPen(markColor); p.setRenderHint(QPainter::Antialiasing, true); p.drawText(pixmap.rect(), Qt::AlignCenter | Qt::AlignVCenter, "\xE2\x9C\x93"); // CHECK MARK _menuIconsWithCheck[iColor] = QIcon(pixmap); } pixmap = bg; { QPainter p(&pixmap); p.setFont(font); p.setPen(markColor); p.setRenderHint(QPainter::Antialiasing, true); p.drawText(pixmap.rect(), Qt::AlignCenter | Qt::AlignVCenter, "\xE2\x9A\xAB"); // MEDIUM BLACK CIRCLE _menuIconsWithDisk[iColor] = QIcon(pixmap); } } switch (mark) { case IconMark::Check: return _menuIconsWithCheck[iColor]; case IconMark::Disk: return _menuIconsWithDisk[iColor]; default: return _menuIcons[iColor]; } } QAction * TagAssets::action(QObject * parent, TagColor color, IconMark mark) { if ((color == TagColor::None) || (color == TagColor::Count)) { return nullptr; } return new QAction(menuIcon(color, mark), QObject::tr("%1 Tag").arg(colorName(color)), parent); } QString TagAssets::colorName(TagColor color) { Q_ASSERT_X(((unsigned int)color < (unsigned int)TagColor::Count), __PRETTY_FUNCTION__, "Invalid color"); static QStringList names = {QObject::tr("None"), // QObject::tr("Red"), // QObject::tr("Green"), // QObject::tr("Blue"), // QObject::tr("Cyan"), // QObject::tr("Magenta"), // QObject::tr("Yellow")}; return names.at(int(color)); } std::ostream & operator<<(std::ostream & out, const TagColorSet & colors) { out << "{"; bool first = true; for (TagColor color : colors) { if (first) { first = false; } else { out << ","; } out << TagAssets::colorName(color).toStdString(); } out << "}"; return out; } } // namespace GmicQt ================================================ FILE: src/Tags.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Tags.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_TAGS_H #define GMIC_QT_TAGS_H #include #include #include #include #include #include "Common.h" class QAction; class QObject; namespace GmicQt { enum class TagColor { None = 0, Red, Green, Blue, Cyan, Magenta, Yellow, Count }; class TagAssets { public: enum class IconMark { None, Check, Disk }; static const QString & markerHtml(TagColor color, unsigned int sideSize); static const QIcon & menuIcon(TagColor color, IconMark mark); static QAction * action(QObject * parent, TagColor color, IconMark mark); static QColor colors[static_cast(TagColor::Count)]; static QString colorName(TagColor color); private: static QString _markerHtml[static_cast(TagColor::Count)]; static QIcon _menuIcons[static_cast(TagColor::Count)]; static QIcon _menuIconsWithCheck[static_cast(TagColor::Count)]; static QIcon _menuIconsWithDisk[static_cast(TagColor::Count)]; static unsigned int _markerSideSize[static_cast(TagColor::Count)]; }; class TagColorSet { public: inline void toggle(TagColor color); inline void insert(TagColor color); inline bool contains(TagColor color) const; inline bool isEmpty() const; inline void clear(); inline bool operator==(const TagColorSet & other) const; inline bool operator!=(const TagColorSet & other) const; inline TagColorSet operator+(TagColor color) const; inline TagColorSet & operator+=(TagColor color); inline TagColorSet & operator-=(TagColor color); inline TagColorSet operator-(TagColor color) const; inline TagColorSet operator|(const TagColorSet & other) const; inline TagColorSet & operator|=(const TagColorSet & other); inline TagColorSet operator&(const TagColorSet & other) const; inline TagColorSet & operator&=(const TagColorSet & other); inline unsigned int mask() const; static const TagColorSet Full; static const TagColorSet ActualColors; static const TagColorSet Empty; friend class const_iterator; class const_iterator { public: inline const_iterator(const TagColorSet & set); inline bool isAtEnd() const; inline const_iterator & operator++(); inline const_iterator operator++(int); inline TagColor operator*() const; inline bool operator!=(const const_iterator & other) const; inline bool operator==(const const_iterator & other) const; private: int _position; const TagColorSet & _set; }; inline const_iterator begin() const; inline const_iterator end() const; TagColorSet() : _mask(0u) {} TagColorSet(const TagColorSet & other) : _mask(other._mask) {} TagColorSet & operator=(const TagColorSet & other); inline explicit TagColorSet(unsigned int mask); private: unsigned int _mask; static const unsigned int _fullMask = ((1 << int(TagColor::Count)) - 1); }; std::ostream & operator<<(std::ostream & out, const TagColorSet & colors); TagColorSet::TagColorSet(unsigned int mask) : _mask(mask & _fullMask) {} inline void TagColorSet::toggle(TagColor color) { Q_ASSERT_X((color != TagColor::Count), __PRETTY_FUNCTION__, QString("Inavild color (%1)").arg(int(color)).toLocal8Bit().constData()); _mask ^= (1u << int(color)); } void TagColorSet::insert(TagColor color) { Q_ASSERT_X((color != TagColor::Count), __PRETTY_FUNCTION__, QString("Inavild color (%1)").arg(int(color)).toLocal8Bit().constData()); _mask |= (1u << int(color)); } bool TagColorSet::contains(TagColor color) const { Q_ASSERT_X((color != TagColor::Count), __PRETTY_FUNCTION__, QString("Inavild color (%1)").arg(int(color)).toLocal8Bit().constData()); return _mask & (1u << int(color)); } bool TagColorSet::isEmpty() const { return !_mask; } void TagColorSet::clear() { _mask = 0; } bool TagColorSet::operator==(const TagColorSet & other) const { return _mask == other._mask; } bool TagColorSet::operator!=(const TagColorSet & other) const { return _mask != other._mask; } TagColorSet & TagColorSet::operator+=(TagColor color) { insert(color); return *this; } TagColorSet TagColorSet::operator+(TagColor color) const { TagColorSet result(*this); result.insert(color); return result; } TagColorSet & TagColorSet::operator-=(TagColor color) { _mask &= ~(1u << int(color)); return *this; } TagColorSet TagColorSet::operator-(TagColor color) const { TagColorSet result(*this); result -= color; return result; } TagColorSet TagColorSet::operator|(const TagColorSet & other) const { return TagColorSet(_mask | other._mask); } TagColorSet & TagColorSet::operator|=(const TagColorSet & other) { _mask |= other._mask; return *this; } TagColorSet TagColorSet::operator&(const TagColorSet & other) const { return TagColorSet(_mask & other._mask); } TagColorSet & TagColorSet::operator&=(const TagColorSet & other) { _mask &= other._mask; return *this; } unsigned int TagColorSet::mask() const { return _mask; } TagColorSet::const_iterator::const_iterator(const TagColorSet & set) : _position(0), _set(set) { while (!isAtEnd() && !(_set._mask & (1 << _position))) { ++_position; } } bool TagColorSet::const_iterator::isAtEnd() const { return (_position == int(TagColor::Count)); } TagColorSet::const_iterator & TagColorSet::const_iterator::operator++() { while (!isAtEnd()) { ++_position; if (_set._mask & (1 << _position)) { break; } } return *this; } TagColor TagColorSet::const_iterator::operator*() const { Q_ASSERT_X(!isAtEnd(), __PRETTY_FUNCTION__, "Should not dereference end() iterator"); Q_ASSERT_X((_set._mask & (1 << _position)), __PRETTY_FUNCTION__, "Current TagColor but is not set"); return TagColor(_position); } TagColorSet::const_iterator TagColorSet::const_iterator::operator++(int) { auto current = *this; ++(*this); return current; } bool TagColorSet::const_iterator::operator!=(const TagColorSet::const_iterator & other) const { return (&_set != &other._set) || (_position != other._position); } bool TagColorSet::const_iterator::operator==(const TagColorSet::const_iterator & other) const { return (&_set == &other._set) && (_position == other._position); } TagColorSet::const_iterator TagColorSet::begin() const { return const_iterator(*this); } TagColorSet::const_iterator TagColorSet::end() const { const_iterator it(*this); while (!it.isAtEnd()) { ++it; } return it; } inline TagColorSet & TagColorSet::operator=(const TagColorSet & other) { _mask = other._mask; return *this; } } // namespace GmicQt #endif // GMIC_QT_TAGS_H ================================================ FILE: src/TimeLogger.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file TimeLogger.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "TimeLogger.h" #include #include #include #include "Common.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { std::unique_ptr TimeLogger::_instance = nullptr; TimeLogger::TimeLogger() { QString filename = gmicConfigPath(true) + "timing_log.txt"; _file = fopen(filename.toLocal8Bit().constData(), "w"); Q_ASSERT_X(_file, __PRETTY_FUNCTION__, "Cannot open log file"); } TimeLogger::~TimeLogger() { fclose(_file); } TimeLogger * TimeLogger::getInstance() { if (!_instance) { _instance = std::unique_ptr(new TimeLogger); } return _instance.get(); } void TimeLogger::step(const char * function, int line, const char * filename) { static cimg_ulong first = 0; static cimg_ulong last = 0; static unsigned int count = 0; const cimg_ulong now = gmic_library::cimg::time(); if (!last) { last = first = now; } double elapsed = (now - last) / 1000.0; const double total = (now - first) / 1000.0; printf("%02d @%2.3f +%2.3f %s <%s:%d>\n", count, total, elapsed, function, filename, line); fprintf(_file, "%02d @%2.3f +%2.3f %s <%s:%d>\n", count, total, elapsed, function, filename, line); ++count; last = now; } } // namespace GmicQt ================================================ FILE: src/TimeLogger.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file TimeLogger.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_TIMELOGGER_H #define GMIC_QT_TIMELOGGER_H #include #include namespace GmicQt { class TimeLogger { public: ~TimeLogger(); static TimeLogger * getInstance(); void step(const char * function, int line, const char * filename); private: TimeLogger(); TimeLogger(const TimeLogger &) = delete; TimeLogger & operator=(const TimeLogger &) = delete; FILE * _file; static std::unique_ptr _instance; }; } // namespace GmicQt #endif // GMIC_QT_TIMELOGGER_H ================================================ FILE: src/Updater.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Updater.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Updater.h" #include #include #include #include #include #include #include #include #include "Common.h" #include "GmicStdlib.h" #include "Logger.h" #include "Misc.h" #include "Settings.h" #include "Utils.h" #include "gmic.h" namespace GmicQt { std::unique_ptr Updater::_instance = std::unique_ptr(nullptr); OutputMessageMode Updater::_outputMessageMode = OutputMessageMode::Quiet; const char * Updater::OfficialFilterSourceURL = "https://gmic.eu/update" GMIC_QT_XSTRINGIFY(gmic_version) ".gmic"; Updater::Updater(QObject * parent) : QObject(parent) { _networkAccessManager = nullptr; _someNetworkUpdatesAchieved = false; } bool Updater::isCImgCompressed(const QByteArray & data) { return data.startsWith("1 uint8 "); } Updater * Updater::getInstance() { if (!_instance) { _instance = std::unique_ptr(new Updater(nullptr)); } return _instance.get(); } Updater::~Updater() = default; void Updater::startUpdate(int ageLimit, int timeout, bool useNetwork) { TIMING; QStringList sources = GmicStdLib::substituteSourceVariables(Settings::filterSources()); prependOfficialSourceIfRelevant(sources); SHOW(sources); _errorMessages.clear(); _networkAccessManager = new QNetworkAccessManager(this); connect(_networkAccessManager, &QNetworkAccessManager::finished, this, &Updater::onNetworkReplyFinished); _someNetworkUpdatesAchieved = false; if (useNetwork) { QDateTime limit = QDateTime::currentDateTime().addSecs(-3600 * (qint64)ageLimit); for (const QString & str : sources) { if (str.startsWith("http://") || str.startsWith("https://")) { QString filename = localFilename(str); QFileInfo info(filename); if (!info.exists() || (info.lastModified() < limit)) { TRACE << "Downloading" << str << "to" << filename; QUrl url(str); QNetworkRequest request(url); request.setHeader(QNetworkRequest::UserAgentHeader, pluginFullName()); // PRIVACY NOTICE (to be displayed in one of the "About" filters of the plugin // // PRIVACY NOTICE // This plugin may download up-to-date filter definitions from the gmic.eu server. // It is the case when first launched after a fresh installation, and periodically // with a frequency which can be set in the settings dialog. // The user should be aware that the following information may be retrieved // from the server logs: IP address of the client; date and time of the request; // as well as a short string, supplied through the HTTP protocol "User Agent" header // field, which describes the full plugin version as shown in the window title // (e.g. "G'MIC-Qt for GIMP 2.8 - Linux 64 bits - 2.2.1_pre#180301"). // // Note that this information may solely be used for purely anonymous // statistical purposes. _pendingReplies.insert(_networkAccessManager->get(request)); } } } } if (_pendingReplies.isEmpty()) { QTimer::singleShot(0, this, &Updater::onUpdateNotNecessary); // While GUI is Idle _networkAccessManager->deleteLater(); } else { QTimer::singleShot(timeout * 1000, this, &Updater::cancelAllPendingDownloads); } TIMING; } QList Updater::errorMessages() { return _errorMessages; } bool Updater::allDownloadsOk() const { return _errorMessages.isEmpty(); } void Updater::processReply(QNetworkReply * reply) { QString url = reply->request().url().toString(); if (!reply->bytesAvailable()) { return; } QByteArray array = reply->readAll(); if (array.isNull()) { _errorMessages << QString(tr("Error downloading %1 (empty file?)")).arg(url); return; } if (isCImgCompressed(array)) { TRACE << QString("Decompressing reply from") << url; QByteArray tmp = cimgzDecompress(array); array = tmp; } if (array.isNull() || !array.contains("#@gui")) { _errorMessages << QString(tr("Could not read/decompress %1")).arg(url); return; } QString filename = localFilename(url); if (!safelyWrite(array, filename)) { _errorMessages << QString(tr("Error writing file %1")).arg(filename); return; } _someNetworkUpdatesAchieved = true; } void Updater::onNetworkReplyFinished(QNetworkReply * reply) { TIMING; QNetworkReply::NetworkError error = reply->error(); if (error == QNetworkReply::NoError) { processReply(reply); } else { QString str; QDebug d(&str); d << error; str = str.trimmed(); _errorMessages << tr("Error downloading %1
Error %2: %3").arg(reply->request().url().toString()).arg(static_cast(error)).arg(str); Logger::error("Update failed"); Logger::note(QString("Error string: %1").arg(reply->errorString())); Logger::note("******* Full reply contents ******\n"); Logger::note(reply->readAll()); Logger::note(QString("******** HTTP Status: %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt())); // We either create an empty local file or 'touch' the existing one to prevent a systematic update on next startups // Instead, usual delay will occur before next try touchFile(localFilename(reply->url().toString())); } _pendingReplies.remove(reply); if (_pendingReplies.isEmpty()) { if (_errorMessages.isEmpty()) { emit updateIsDone((int)UpdateStatus::Successful); } else { emit updateIsDone((int)UpdateStatus::SomeFailed); } _networkAccessManager->deleteLater(); _networkAccessManager = nullptr; } reply->deleteLater(); } void Updater::notifyAllDownloadsOK() { _errorMessages.clear(); emit updateIsDone((int)UpdateStatus::Successful); } void Updater::cancelAllPendingDownloads() { TIMING; // Make a copy because aborting will call onNetworkReplyFinished, and // thus modify the _pendingReplies set. QSet replies = _pendingReplies; for (QNetworkReply * reply : replies) { _errorMessages << QString(tr("Download timeout: %1")).arg(reply->request().url().toString()); reply->abort(); } } void Updater::onUpdateNotNecessary() { emit updateIsDone((int)UpdateStatus::NotNecessary); } QByteArray Updater::cimgzDecompress(const QByteArray & array) { try { gmic_library::gmic_image buffer(array.constData(), array.size(), 1, 1, 1, true); gmic_library::gmic_list list = gmic_library::gmic_list::get_unserialize(buffer); if (list.size() == 1) { return {list[0].data(), int(list[0].size())}; } } catch (...) { Logger::warning("Updater::cimgzDecompress(): Error decompressing data"); } return {}; } QByteArray Updater::cimgzDecompressFile(const QString & filename) { gmic_library::gmic_image buffer; try { buffer.load_cimg(filename.toLocal8Bit().constData()); } catch (...) { Logger::warning("Updater::cimgzDecompressFile(): gmic_image<>::load_cimg error for file " + filename); return QByteArray(); } return QByteArray((char *)buffer.data(), (int)buffer.size()); } QString Updater::localFilename(QString url) { if (url.startsWith("http://") || url.startsWith("https://")) { QUrl u(url); return QString("%1%2").arg(gmicConfigPath(true)).arg(u.fileName()); } return url; } bool Updater::appendLocalGmicFile(QByteArray & array, QString filename) const { QFileInfo info(filename); if (!info.exists() || !info.size()) { return false; } QFile file(filename); if (!file.open(QIODevice::ReadOnly)) { Logger::error("Error opening file: " + filename); return false; } QByteArray fileData; if (isCImgCompressed(file.peek(10))) { file.close(); TRACE << "Appending compressed file:" << filename; fileData = cimgzDecompressFile(filename); if (!fileData.size()) { return false; } } else { TRACE << "Appending:" << filename; fileData = file.readAll(); } array.append(fileData); array.append('\n'); return true; } void Updater::prependOfficialSourceIfRelevant(QStringList & list) { if (Settings::officialFilterSource() == SourcesWidget::OfficialFilters::EnabledWithUpdates) { list.push_front(QString::fromUtf8(OfficialFilterSourceURL)); } } QByteArray Updater::buildFullStdlib() const { QByteArray result; const QByteArray ToTopLevelSeparator = QString("#@gui %1\n").arg(QString("_").repeated(80)).toUtf8(); QStringList sources = GmicStdLib::substituteSourceVariables(Settings::filterSources()); switch (Settings::officialFilterSource()) { case SourcesWidget::OfficialFilters::Disabled: // No stdlib included break; case SourcesWidget::OfficialFilters::EnabledWithoutUpdates: appendBuiltinGmicStdlib(result); result.append(ToTopLevelSeparator); break; case SourcesWidget::OfficialFilters::EnabledWithUpdates: if (!appendLocalGmicFile(result, localFilename(QString::fromUtf8(OfficialFilterSourceURL)))) { // Fallback on builtin stdlib appendBuiltinGmicStdlib(result); } result.append(ToTopLevelSeparator); break; } for (const QString & source : sources) { QString filename = localFilename(source); if (appendLocalGmicFile(result, filename)) { result.append(ToTopLevelSeparator); } } return result; } bool Updater::someNetworkUpdateAchieved() const { return _someNetworkUpdatesAchieved; } void Updater::setOutputMessageMode(OutputMessageMode mode) { _outputMessageMode = mode; } void Updater::appendBuiltinGmicStdlib(QByteArray & array) const { gmic_image stdlib_h = gmic::decompress_stdlib(); if (!stdlib_h.size() || (stdlib_h.size() == 1)) { Logger::error("Could not decompress gmic builtin stdlib"); return; } QByteArray tmp(stdlib_h, int(stdlib_h.size() - 1)); array.append(tmp); array.append('\n'); } } // namespace GmicQt ================================================ FILE: src/Updater.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Updater.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_UPDATER_H #define GMIC_QT_UPDATER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "GmicQt.h" namespace GmicQt { class Updater : public QObject { Q_OBJECT public: enum class UpdateStatus { Successful, SomeFailed, NotNecessary }; static Updater * getInstance(); static void setOutputMessageMode(OutputMessageMode mode); ~Updater() override; /** * @brief Launch download of files that are either not present locally, or * older than the given age limit (in hours). To force download * of all the sources, set the age limit to zero. * * @param ageLimit Delay between 2 network updates in hours * @param timeout in seconds before aborting downloads * @param useNetwork Enable internet access */ void startUpdate(int ageLimit, int timeout, bool useNetwork); QList errorMessages(); bool allDownloadsOk() const; QByteArray buildFullStdlib() const; bool someNetworkUpdateAchieved() const; signals: void updateIsDone(int status); public slots: void onNetworkReplyFinished(QNetworkReply *); void notifyAllDownloadsOK(); void cancelAllPendingDownloads(); void onUpdateNotNecessary(); protected: void processReply(QNetworkReply * reply); private: static QString localFilename(QString url); void appendBuiltinGmicStdlib(QByteArray & array) const; bool appendLocalGmicFile(QByteArray & array, QString filename) const; void prependOfficialSourceIfRelevant(QStringList & list); explicit Updater(QObject * parent); static bool isCImgCompressed(const QByteArray & data); static QByteArray cimgzDecompress(const QByteArray & array); static QByteArray cimgzDecompressFile(const QString & filename); static std::unique_ptr _instance; static OutputMessageMode _outputMessageMode; static const char * OfficialFilterSourceURL; QNetworkAccessManager * _networkAccessManager; QSet _pendingReplies; QList _errorMessages; bool _someNetworkUpdatesAchieved; }; } // namespace GmicQt #endif // GMIC_QT_UPDATER_H ================================================ FILE: src/Utils.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Utils.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Utils.h" #include #include #include #include #include #include #include #include #include "Common.h" #include "Host/GmicQtHost.h" #include "Logger.h" #include "gmic.h" #ifdef _IS_WINDOWS_ #include #include #endif #ifdef _IS_UNIX_ #include #endif namespace GmicQt { const QString & gmicConfigPath(bool create) { #if defined(Q_OS_ANDROID) QString baseAppPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); const QString qpath = QString::fromUtf8(gmic::path_rc(qPrintable(baseAppPath))); #elif defined(_IS_WINDOWS_) const QString qpath = QString::fromUtf8(gmic::path_rc()); #else const QString qpath = QString::fromLocal8Bit(gmic::path_rc()); #endif static QString result; QFileInfo pathInfo(qpath); if (pathInfo.isDir() || (create && gmic::init_rc())) { result = qpath; } else { result.clear(); } return result; } unsigned int host_app_pid() { #if defined(_IS_UNIX_) return static_cast(getppid()); #elif defined(_IS_WINDOWS_) HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 pe; memset(&pe, 0, sizeof(PROCESSENTRY32)); pe.dwSize = sizeof(PROCESSENTRY32); DWORD pid = GetCurrentProcessId(); if (Process32First(h, &pe)) { do { if (pe.th32ProcessID == pid) { CloseHandle(h); return static_cast(pe.th32ParentProcessID); } } while (Process32Next(h, &pe)); } CloseHandle(h); return static_cast(pid); // Process own id if no parent was found #else return 0; #endif } const QString & pluginFullName() { #ifdef gmic_prerelease #define BETA_SUFFIX "_pre#" gmic_prerelease #else #define BETA_SUFFIX "" #endif static QString result; if (result.isEmpty()) { result = QString("G'MIC-Qt %1- %2 %3 bits - %4" BETA_SUFFIX) .arg(GmicQtHost::ApplicationName.isEmpty() ? QString() : QString("for %1 ").arg(GmicQtHost::ApplicationName)) .arg(gmic_library::cimg::stros()) .arg(sizeof(void *) == 8 ? 64 : 32) .arg(gmicVersionString()); } return result; } const QString & pluginCodeName() { static QString result; if (result.isEmpty()) { result = GmicQtHost::ApplicationName.isEmpty() ? QString("gmic_qt") : QString("gmic_%1_qt").arg(QString(GmicQtHost::ApplicationShortname).toLower()); } return result; } bool touchFile(const QString & path) { QFile file(path); if (!file.open(QFile::ReadWrite)) { return false; } const auto size = file.size(); file.resize(size + 1); file.resize(size); return true; } bool writeAll(const QByteArray & array, QFile & file) { qint64 toBeWritten = array.size(); qint64 totalWritten = 0; qint64 writtenByCall = 0; qint64 maxBytesPerWrite = 10l << 20; const char * data = array.constData(); do { writtenByCall = file.write(data, std::min(toBeWritten, maxBytesPerWrite)); if (writtenByCall == -1) { Logger::error(QString("Could not properly write file %1 (%2/%3 bytes written)") // .arg(file.fileName()) .arg(totalWritten) .arg(array.size())); return false; } data += writtenByCall; totalWritten += writtenByCall; toBeWritten -= writtenByCall; } while (toBeWritten); file.flush(); return true; } bool safelyWrite(const QByteArray & array, const QString & filename) { QString directory = QFileInfo(filename).absoluteDir().absolutePath(); if (!QFileInfo(directory).isWritable()) { Logger::error(QString("Folder is not writable (%1)").arg(directory)); return false; } QTemporaryFile temporary; temporary.setAutoRemove(false); const bool ok = temporary.open() // && writeAll(array, temporary) // && (!QFileInfo(filename).exists() || QFile::remove(filename)) // && temporary.copy(filename); temporary.remove(); return ok; } } // namespace GmicQt ================================================ FILE: src/Utils.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file Utils.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_UTILS_H #define GMIC_QT_UTILS_H #include "GmicQt.h" class QFile; class QByteArray; class QString; namespace GmicQt { const QString & gmicConfigPath(bool create); unsigned int host_app_pid(); const QString & pluginFullName(); const QString & pluginCodeName(); bool touchFile(const QString & path); bool writeAll(const QByteArray & array, QFile & file); bool safelyWrite(const QByteArray & array, const QString & filename); } // namespace GmicQt #endif // GMIC_QT_UTILS_H ================================================ FILE: src/Widgets/InOutPanel.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file InOutPanel.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/InOutPanel.h" #include #include #include #include #include "IconLoader.h" #include "ui_inoutpanel.h" namespace GmicQt { QList InOutPanel::_enabledInputModes = { // InputMode::NoInput, // InputMode::Active, // InputMode::All, // InputMode::ActiveAndBelow, // InputMode::ActiveAndAbove, // InputMode::AllVisible, // InputMode::AllInvisible}; QList InOutPanel::_enabledOutputModes = { // OutputMode::InPlace, // OutputMode::NewLayers, // OutputMode::NewActiveLayers, // OutputMode::NewImage}; /* * InOutPanel methods */ InOutPanel::InOutPanel(QWidget * parent) : QWidget(parent), ui(new Ui::InOutPanel) { ui->setupUi(this); ui->topLabel->setStyleSheet("QLabel { font-weight: bold }"); ui->tbReset->setIcon(IconLoader::load("view-refresh")); ui->inputLayers->setToolTip(tr("Input layers")); #define ADD_INPUT_IF_ENABLED(MODE, TEXT) \ if (_enabledInputModes.contains(MODE)) \ ui->inputLayers->addItem(TEXT, static_cast(MODE)) ADD_INPUT_IF_ENABLED(InputMode::NoInput, tr("None")); ADD_INPUT_IF_ENABLED(InputMode::Active, tr("Active (default)")); ADD_INPUT_IF_ENABLED(InputMode::All, tr("All")); ADD_INPUT_IF_ENABLED(InputMode::ActiveAndBelow, tr("Active and below")); ADD_INPUT_IF_ENABLED(InputMode::ActiveAndAbove, tr("Active and above")); ADD_INPUT_IF_ENABLED(InputMode::AllVisible, tr("All visible")); ADD_INPUT_IF_ENABLED(InputMode::AllInvisible, tr("All invisible")); // "decr." input mode have been removed (since 2.8.2) // ui->inputLayers->addItem(tr("All visible (decr.)"), AllVisiblesDesc); // ui->inputLayers->addItem(tr("All invisible (decr.)"), AllInvisiblesDesc); // ui->inputLayers->addItem(tr("All (decr.)"), AllDesc); if (ui->inputLayers->count() == 1) { ui->labelInputLayers->hide(); ui->inputLayers->hide(); } ui->outputMode->setToolTip(tr("Output mode")); #define ADD_OUTPUT_IF_ENABLED(MODE, TEXT) \ if (_enabledOutputModes.contains(MODE)) \ ui->outputMode->addItem(TEXT, static_cast(MODE)) ADD_OUTPUT_IF_ENABLED(OutputMode::InPlace, tr("In place (default)")); ADD_OUTPUT_IF_ENABLED(OutputMode::NewLayers, tr("New layer(s)")); ADD_OUTPUT_IF_ENABLED(OutputMode::NewActiveLayers, tr("New active layer(s)")); ADD_OUTPUT_IF_ENABLED(OutputMode::NewImage, tr("New image")); if (ui->outputMode->count() == 1) { ui->labelOutputMode->hide(); ui->outputMode->hide(); } setTopLabel(); updateLayoutIfUniqueRow(); connect(ui->inputLayers, QOverload::of(&QComboBox::currentIndexChanged), this, &InOutPanel::onInputModeSelected); connect(ui->outputMode, QOverload::of(&QComboBox::currentIndexChanged), this, &InOutPanel::onOutputModeSelected); connect(ui->tbReset, &QToolButton::clicked, this, &InOutPanel::onResetButtonClicked); _notifyValueChange = true; } InOutPanel::~InOutPanel() { delete ui; } InputMode InOutPanel::inputMode() const { int mode = ui->inputLayers->currentData().toInt(); return static_cast(mode); } OutputMode InOutPanel::outputMode() const { int mode = ui->outputMode->currentData().toInt(); return static_cast(mode); } void InOutPanel::setInputMode(InputMode mode) { int index = ui->inputLayers->findData(static_cast(mode)); ui->inputLayers->setCurrentIndex((index == -1) ? ui->inputLayers->findData(static_cast(DefaultInputMode)) : index); } void InOutPanel::setOutputMode(OutputMode mode) { int index = ui->outputMode->findData(static_cast(mode)); ui->outputMode->setCurrentIndex((index == -1) ? ui->outputMode->findData(static_cast(DefaultOutputMode)) : index); } void InOutPanel::reset() { ui->inputLayers->setCurrentIndex(ui->inputLayers->findData(static_cast(DefaultInputMode))); ui->outputMode->setCurrentIndex(ui->outputMode->findData(static_cast(DefaultOutputMode))); } void InOutPanel::onInputModeSelected(int) { if (_notifyValueChange) { emit inputModeChanged(inputMode()); } } void InOutPanel::onOutputModeSelected(int) {} void InOutPanel::onResetButtonClicked() { setState(InputOutputState::Default, true); } void InOutPanel::setDarkTheme() { ui->tbReset->setIcon(IconLoader::load("view-refresh")); } void InOutPanel::setDefaultInputMode() { if (_enabledInputModes.contains(DefaultInputMode)) { return; } const int start = static_cast(InputMode::Active); const int stop = static_cast(InputMode::AllInvisible); for (int m = start; m <= stop; ++m) { const auto mode = static_cast(m); if (_enabledInputModes.contains(mode)) { DefaultInputMode = mode; return; } } Q_ASSERT_X(_enabledInputModes.contains(InputMode::NoInput), __FUNCTION__, "No input mode left by host settings. Default mode cannot be determined."); DefaultInputMode = InputMode::NoInput; } void InOutPanel::setDefaultOutputMode() { if (_enabledOutputModes.contains(DefaultOutputMode)) { return; } Q_ASSERT_X(!_enabledOutputModes.isEmpty(), __FUNCTION__, "No output mode left by host settings. Default mode cannot be determined."); const int start = (int)OutputMode::InPlace; const int stop = (int)OutputMode::NewImage; for (int m = start; m <= stop; ++m) { const auto mode = static_cast(m); if (_enabledOutputModes.contains(mode)) { DefaultOutputMode = mode; return; } } } void InOutPanel::setTopLabel() { const bool input = ui->inputLayers->count() > 1; const bool output = ui->outputMode->count() > 1; if (input && output) { ui->topLabel->setText(tr("Input / Output")); } else if (input) { ui->topLabel->setText(tr("Input")); } else if (output) { ui->topLabel->setText(tr("Output")); } } void InOutPanel::updateLayoutIfUniqueRow() { const bool input = ui->inputLayers->count() > 1; const bool output = ui->outputMode->count() > 1; if ((input + output) > 1) { return; } if (input) { ui->topLabel->setText(ui->labelInputLayers->text()); ui->horizontalLayout->insertWidget(1, ui->inputLayers); } else if (output) { ui->topLabel->setText(ui->labelOutputMode->text()); ui->horizontalLayout->insertWidget(1, ui->outputMode); } ui->topLabel->setStyleSheet("QLabel { font-weight: normal }"); ui->scrollArea->hide(); } void InOutPanel::disableNotifications() { _notifyValueChange = false; } void InOutPanel::enableNotifications() { _notifyValueChange = true; } /* * InOutPanel::state methods */ InputOutputState InOutPanel::state() const { return {inputMode(), outputMode()}; } void InOutPanel::setState(const InputOutputState & state, bool notify) { bool savedNotificationStatus = _notifyValueChange; if (notify) { enableNotifications(); } else { disableNotifications(); } setInputMode(state.inputMode); setOutputMode(state.outputMode); if (savedNotificationStatus) { enableNotifications(); } else { disableNotifications(); } } void InOutPanel::setEnabled(bool on) { ui->inputLayers->setEnabled(on); ui->outputMode->setEnabled(on); } void InOutPanel::disable() { setEnabled(false); } void InOutPanel::enable() { setEnabled(true); } void InOutPanel::disableInputMode(InputMode mode) { const bool isDefault = (mode == DefaultInputMode); _enabledInputModes.removeOne(mode); if (isDefault) { setDefaultInputMode(); } } void InOutPanel::disableOutputMode(OutputMode mode) { const bool isDefault = (mode == DefaultOutputMode); _enabledOutputModes.removeOne(mode); if (isDefault) { setDefaultOutputMode(); } } bool InOutPanel::hasActiveControls() { const bool input = ui->inputLayers->count() > 1; const bool output = ui->outputMode->count() > 1; return input || output; } } // namespace GmicQt ================================================ FILE: src/Widgets/InOutPanel.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file InOutPanel.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_INOUTPANEL_H #define GMIC_QT_INOUTPANEL_H #include #include "GmicQt.h" #include "Host/GmicQtHost.h" #include "InputOutputState.h" class QSettings; class QPalette; namespace Ui { class InOutPanel; } namespace GmicQt { class FilterThread; class InOutPanel : public QWidget { Q_OBJECT public: explicit InOutPanel(QWidget * parent); ~InOutPanel() override; public: InputMode inputMode() const; OutputMode outputMode() const; OutputMessageMode outputMessageMode() const; void reset(); void disableNotifications(); void enableNotifications(); void setInputMode(InputMode mode); void setOutputMode(OutputMode mode); InputOutputState state() const; void setState(const InputOutputState & state, bool notify); void setEnabled(bool); void disable(); void enable(); static void disableInputMode(InputMode mode); static void disableOutputMode(OutputMode mode); bool hasActiveControls(); signals: void inputModeChanged(InputMode); public slots: void onInputModeSelected(int); void onOutputModeSelected(int); void onResetButtonClicked(); void setDarkTheme(); private: static void setDefaultInputMode(); static void setDefaultOutputMode(); void setTopLabel(); void updateLayoutIfUniqueRow(); bool _notifyValueChange; Ui::InOutPanel * ui; static const int NoSelection = -1; static QList _enabledInputModes; static QList _enabledOutputModes; }; } // namespace GmicQt #endif // GMIC_QT_INOUTPANEL_H ================================================ FILE: src/Widgets/LanguageSelectionWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LanguageSelectionWidget.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/LanguageSelectionWidget.h" #include #include #include #include "Common.h" #include "Globals.h" #include "LanguageSettings.h" #include "Settings.h" #include "ui_languageselectionwidget.h" namespace GmicQt { LanguageSelectionWidget::LanguageSelectionWidget(QWidget * parent) // : QWidget(parent), // ui(new Ui::LanguageSelectionWidget), // _code2name(LanguageSettings::availableLanguages()) { ui->setupUi(this); QMap::const_iterator it = _code2name.begin(); while (it != _code2name.end()) { ui->comboBox->addItem(*it, QVariant(it.key())); ++it; } QString lang = LanguageSettings::systemDefaultAndAvailableLanguageCode(); _systemDefaultIsAvailable = !lang.isEmpty(); if (_systemDefaultIsAvailable) { ui->comboBox->insertItem(0, QString(tr("System default (%1)")).arg(_code2name[lang]), QVariant(QString())); } if (Settings::darkThemeEnabled()) { QPalette p = ui->cbTranslateFilters->palette(); p.setColor(QPalette::Text, Settings::CheckBoxTextColor); p.setColor(QPalette::Base, Settings::CheckBoxBaseColor); ui->cbTranslateFilters->setPalette(p); } ui->cbTranslateFilters->setToolTip(tr("Translations are very likely to be incomplete.")); connect(ui->comboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &LanguageSelectionWidget::onLanguageSelectionChanged); connect(ui->cbTranslateFilters, &QCheckBox::toggled, this, &LanguageSelectionWidget::onCheckboxToggled); } LanguageSelectionWidget::~LanguageSelectionWidget() { delete ui; } bool LanguageSelectionWidget::translateFiltersEnabled() const { return ui->cbTranslateFilters->isChecked(); } void LanguageSelectionWidget::enableFilterTranslation(bool on) { ui->cbTranslateFilters->setChecked(on); } void LanguageSelectionWidget::selectLanguage(const QString & code) { QString lang; // Empty code means "system default" if (code.isEmpty()) { if (_systemDefaultIsAvailable) { ui->comboBox->setCurrentIndex(0); return; } lang = "en"; } else { if (_code2name.find(code) != _code2name.end()) { lang = code; } else { lang = "en"; } } const int count = ui->comboBox->count(); for (int i = _systemDefaultIsAvailable ? 1 : 0; i < count; ++i) { if (ui->comboBox->itemData(i).toString() == lang) { ui->comboBox->setCurrentIndex(i); return; } } } void LanguageSelectionWidget::onLanguageSelectionChanged(int index) { QString lang = ui->comboBox->itemData(index).toString(); Settings::setLanguageCode(lang); if (lang.isEmpty()) { lang = LanguageSettings::systemDefaultAndAvailableLanguageCode(); } if (LanguageSettings::filterTranslationAvailable(lang)) { ui->cbTranslateFilters->setEnabled(true); } else { ui->cbTranslateFilters->setChecked(false); ui->cbTranslateFilters->setEnabled(false); } } void LanguageSelectionWidget::onCheckboxToggled(bool on) { Settings::setFilterTranslationEnabled(on); } } // namespace GmicQt ================================================ FILE: src/Widgets/LanguageSelectionWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file LanguageSelectionWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef LANGUAGESELECTIONWIDGET_H #define LANGUAGESELECTIONWIDGET_H #include #include #include namespace Ui { class LanguageSelectionWidget; } namespace GmicQt { class LanguageSelectionWidget : public QWidget { Q_OBJECT public: explicit LanguageSelectionWidget(QWidget * parent); ~LanguageSelectionWidget(); bool translateFiltersEnabled() const; void enableFilterTranslation(bool on); public slots: void selectLanguage(const QString & code); private slots: void onLanguageSelectionChanged(int index); void onCheckboxToggled(bool); private: Ui::LanguageSelectionWidget * ui; const QMap & _code2name; bool _systemDefaultIsAvailable; }; } // namespace GmicQt #endif // LANGUAGESELECTIONWIDGET_H ================================================ FILE: src/Widgets/PreviewWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file PreviewWidget.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/PreviewWidget.h" #include #include #include #include #include #include #include #include #include "Common.h" #include "CroppedActiveLayerProxy.h" #include "Globals.h" #include "GmicStdlib.h" #include "ImageTools.h" #include "Misc.h" #include "OverrideCursor.h" #include "Settings.h" #include "gmic.h" namespace GmicQt { const PreviewWidget::PreviewRect PreviewWidget::PreviewRect::Full{0.0, 0.0, 1.0, 1.0}; PreviewWidget::PreviewWidget(QWidget * parent) : QWidget(parent) { setAutoFillBackground(false); _image = new gmic_library::gmic_image; _image->assign(); _savedPreview = new gmic_library::gmic_image; _savedPreview->assign(); _transparency.load(":resources/transparency.png"); _visibleRect = PreviewRect::Full; saveVisibleCenter(); _pendingResize = false; _previewEnabled = true; _currentZoomFactor = 1.0; _zoomConstraint = ZoomConstraint::Any; _timerID = 0; _savedPreviewIsValid = false; _paintOriginalImage = true; qApp->installEventFilter(this); _rightClickEnabled = false; _originalImageSize = QSize(-1, -1); _movedKeypointOrigin = QPoint(-1, -1); _movedKeypointIndex = -1; _previewType = PreviewType::Full; setMouseTracking(false); _xPreviewSplit = 0.5f; _yPreviewSplit = 0.5f; _draggingMode = DraggingMode::Inactive; _savedPreviewType = static_cast(QSettings().value(PREVIEW_SPLITTER_KEY, int(PreviewType::ForwardVertical)).toInt()); } PreviewWidget::~PreviewWidget() { QSettings().setValue(PREVIEW_SPLITTER_KEY, static_cast(_savedPreviewType)); delete _image; delete _savedPreview; } const gmic_library::gmic_image & PreviewWidget::image() const { return *_image; } void PreviewWidget::setPreviewImage(const gmic_library::gmic_image & image) { _errorMessage.clear(); _errorImage = QImage(); _overlayMessage.clear(); *_image = image; *_savedPreview = image; _savedPreviewIsValid = true; updateOriginalImagePosition(); _paintOriginalImage = false; if (isAtFullZoom()) { if (_fullImageSize.isNull()) { _currentZoomFactor = 1.0; } else { _currentZoomFactor = std::min(width() / (double)_fullImageSize.width(), height() / (double)_fullImageSize.height()); } emit zoomChanged(_currentZoomFactor); } update(); } void PreviewWidget::setOverlayMessage(const QString & message) { _overlayMessage = message; _paintOriginalImage = false; update(); } void PreviewWidget::clearOverlayMessage() { _overlayMessage.clear(); _paintOriginalImage = false; update(); } void PreviewWidget::setPreviewErrorMessage(const QString & message) { _errorMessage = message; _errorImage = QImage(); updateErrorImage(); _paintOriginalImage = false; update(); } void PreviewWidget::setFullImageSize(const QSize & size) { _fullImageSize = size; CroppedActiveLayerProxy::clear(); updateVisibleRect(); saveVisibleCenter(); } void PreviewWidget::updateFullImageSizeIfDifferent(const QSize & size) { if (size != _fullImageSize) { setFullImageSize(size); } else { CroppedActiveLayerProxy::clear(); } } void PreviewWidget::updateVisibleRect() { if (_fullImageSize.isNull()) { _visibleRect = PreviewRect::Full; } else { _visibleRect.w = std::min(1.0, (width() / (_currentZoomFactor * _fullImageSize.width()))); _visibleRect.h = std::min(1.0, (height() / (_currentZoomFactor * _fullImageSize.height()))); _visibleRect.x = std::min(_visibleRect.x, 1.0 - _visibleRect.w); _visibleRect.y = std::min(_visibleRect.y, 1.0 - _visibleRect.h); } } void PreviewWidget::centerVisibleRect() { _visibleRect.moveToCenter(); } void PreviewWidget::updateOriginalImagePosition() { if (_fullImageSize.isNull()) { _originalImageSize = QSize(0, 0); _originalImageScaledSize = QSize(0, 0); _imagePosition = rect(); return; } _originalImageSize = originalImageCropSize(); if (isAtFullZoom()) { double correctZoomFactor = std::min(width() / (double)_originalImageSize.width(), height() / (double)_originalImageSize.height()); if (correctZoomFactor != _currentZoomFactor) { _currentZoomFactor = correctZoomFactor; emit zoomChanged(_currentZoomFactor); } } if (_currentZoomFactor > 1.0) { _originalImageScaledSize = _originalImageSize; QSize imageSize(std::round(_originalImageSize.width() * _currentZoomFactor), std::round(_originalImageSize.height() * _currentZoomFactor)); int left, top; if (imageSize.height() > height()) { top = -(int)(((_visibleRect.y * _fullImageSize.height()) - std::floor(_visibleRect.y * _fullImageSize.height())) * _currentZoomFactor); } else { top = (height() - imageSize.height()) / 2; } if (imageSize.width() > width()) { left = -(int)(((_visibleRect.x * _fullImageSize.width()) - std::floor(_visibleRect.x * _fullImageSize.width())) * _currentZoomFactor); } else { left = (width() - imageSize.width()) / 2; } _imagePosition = QRect(QPoint(left, top), imageSize); } else { _originalImageScaledSize = QSize(static_cast(std::round(_originalImageSize.width() * _currentZoomFactor)), // static_cast(std::round(_originalImageSize.height() * _currentZoomFactor))); _imagePosition = QRect(QPoint(std::max(0, (width() - _originalImageScaledSize.width()) / 2), // std::max(0, (height() - _originalImageScaledSize.height()) / 2)), _originalImageScaledSize); } } void PreviewWidget::updatePreviewImagePosition() { /* If preview image has a size different from the original image crop, or * we are at "full image" zoom of an image smaller than the widget, * then the image should fit the widget size. */ const QSize previewImageSize(_image->width(), _image->height()); if ((previewImageSize != _originalImageScaledSize) || (isAtFullZoom() && (_currentZoomFactor > 1.0))) { QSize imageSize; if (previewImageSize != _originalImageScaledSize) { imageSize = previewImageSize.scaled(width(), height(), Qt::KeepAspectRatio); } else { imageSize = QSize(static_cast(std::round(_originalImageSize.width() * _currentZoomFactor)), // static_cast(std::round(_originalImageSize.height() * _currentZoomFactor))); } _imagePosition = QRect(QPoint(std::max(0, (width() - imageSize.width()) / 2), // std::max(0, (height() - imageSize.height()) / 2)), imageSize); _originalImageScaledSize = QSize(-1, -1); // Make sure next preview update will not consider originaImageScaledSize } /* * Otherwise : Preview size == Original scaled size and image position is therefore unchanged */ } QRect PreviewWidget::splittedPreviewPosition() { updateOriginalImagePosition(); QRect original = _imagePosition; updatePreviewImagePosition(); QRect preview = _imagePosition; int x1 = std::max(0, std::min(original.left(), preview.left())); int y1 = std::max(0, std::min(original.top(), preview.top())); int x2 = std::min(width() - 1, std::max(original.left() + original.width(), preview.left() + preview.width())); int y2 = std::min(height() - 1, std::max(original.top() + original.height(), preview.top() + preview.height())); return QRect(x1, y1, 1 + x2 - x1, 1 + y2 - y1); } void PreviewWidget::updateErrorImage() { gmic_library::gmic_list images; gmic_library::gmic_list imageNames; images.assign(); imageNames.assign(); gmic_image image; getOriginalImageCrop(image); image.move_to(images); QString fullCommandLine = commandFromOutputMessageMode(Settings::outputMessageMode()); fullCommandLine += QString(" _host=%1 _tk=qt").arg(GmicQtHost::ApplicationShortname); fullCommandLine += QString(" _preview_area_width=%1").arg(width()); fullCommandLine += QString(" _preview_area_height=%1").arg(height()); fullCommandLine += QString(" gui_error_preview \"%2\"").arg(_errorMessage); try { gmic(fullCommandLine.toLocal8Bit().constData(), images, imageNames, GmicStdLib::Array.constData(), true); } catch (...) { images.assign(); imageNames.assign(); } if (!images.size() || !images.front()) { _errorImage = QImage(size(), QImage::Format_ARGB32); _errorImage.fill(QColor(40, 40, 40)); QPainter painter(&_errorImage); painter.setPen(Qt::green); painter.drawText(QRect(0, 0, _errorImage.width(), _errorImage.height()), Qt::AlignCenter | Qt::TextWordWrap, _errorMessage); return; } QImage qimage; convertGmicImageToQImage(images.front(), qimage); if (qimage.size() != size()) { _errorImage = qimage.scaled(size()); } else { _errorImage = qimage; } } void PreviewWidget::paintKeypoints(QPainter & painter) { QPen pen; pen.setColor(Qt::black); pen.setWidth(2); painter.setRenderHint(QPainter::Antialiasing, true); painter.setPen(pen); QRect visibleRect = rect() & _imagePosition; KeypointList::reverse_iterator it = _keypoints.rbegin(); int index = static_cast(_keypoints.size() - 1); while (it != _keypoints.rend()) { if (!it->isNaN()) { const KeypointList::Keypoint & kp = *it; const int & radius = kp.actualRadiusFromPreviewSize(_imagePosition.size()); QPoint visibleCenter = keypointToVisiblePointInWidget(kp); QPoint realCenter = keypointToPointInWidget(kp); QRect r(visibleCenter.x() - radius, visibleCenter.y() - radius, 2 * radius, 2 * radius); QColor brushColor = kp.color; if ((index == _movedKeypointIndex) && !kp.keepOpacityWhenSelected) { brushColor.setAlpha(255); } if (visibleRect.contains(realCenter, false)) { painter.setBrush(brushColor); pen.setStyle(Qt::SolidLine); } else { painter.setBrush(brushColor.darker(150)); pen.setStyle(Qt::DotLine); } pen.setColor(QColor(0, 0, 0, brushColor.alpha())); painter.setPen(pen); painter.drawEllipse(r); } ++it; --index; } } int PreviewWidget::keypointUnderMouse(const QPoint & p) { KeypointList::iterator it = _keypoints.begin(); int index = 0; while (it != _keypoints.end()) { if (!it->isNaN()) { const KeypointList::Keypoint & kp = *it; QPoint center = keypointToVisiblePointInWidget(kp); if (roundedDistance(center, p) <= (kp.actualRadiusFromPreviewSize(_imagePosition.size()) + 2)) { return index; } } ++it; ++index; } return -1; } QPoint PreviewWidget::keypointToPointInWidget(const KeypointList::Keypoint & kp) const { return QPoint(static_cast(std::round(_imagePosition.left() + (_imagePosition.width() - 1) * (kp.x / 100.0f))), static_cast(std::round(_imagePosition.top() + (_imagePosition.height() - 1) * (kp.y / 100.0f)))); } QPoint PreviewWidget::keypointToVisiblePointInWidget(const KeypointList::Keypoint & kp) const { QPoint p = keypointToPointInWidget(kp); p.rx() = std::max(std::max(_imagePosition.left(), 0), std::min(p.x(), std::min(rect().left() + rect().width(), _imagePosition.left() + _imagePosition.width()))); p.ry() = std::max(std::max(_imagePosition.top(), 0), std::min(p.y(), std::min(rect().top() + rect().height(), _imagePosition.top() + _imagePosition.height()))); return p; } QPointF PreviewWidget::pointInWidgetToKeypointPosition(const QPoint & p) const { QPointF result(100.0 * (p.x() - _imagePosition.left()) / (float)(_imagePosition.width() - 1), 100.0 * (p.y() - _imagePosition.top()) / (float)(_imagePosition.height() - 1)); result.rx() = std::min(300.0, std::max(-200.0, result.x())); result.ry() = std::min(300.0, std::max(-200.0, result.y())); return result; } PreviewWidget::DraggingMode PreviewWidget::splitterDraggingModeFromMousePosition(const QPoint & p) { if (_previewType == PreviewType::Full) { return DraggingMode::Inactive; } int x = (_imagePosition.left() <= 0) ? (_xPreviewSplit * width()) : (_imagePosition.left() + _xPreviewSplit * _imagePosition.width()); int y = (_imagePosition.top() <= 0) ? (_yPreviewSplit * height()) : (_imagePosition.top() + _yPreviewSplit * _imagePosition.height()); switch (_previewType) { case PreviewType::ForwardHorizontal: case PreviewType::BackwardHorizontal: case PreviewType::DuplicateTop: case PreviewType::DuplicateBottom: case PreviewType::DuplicateHorizontal: return (std::abs(p.y() - y) < (2 * _SplitterButtonWidth + _SplitterButtonMargin)) ? DraggingMode::Y : DraggingMode::Inactive; break; case PreviewType::ForwardVertical: case PreviewType::BackwardVertical: case PreviewType::DuplicateLeft: case PreviewType::DuplicateRight: case PreviewType::DuplicateVertical: return (std::abs(p.x() - x) < (2 * _SplitterButtonWidth + _SplitterButtonMargin)) ? DraggingMode::X : DraggingMode::Inactive; break; case PreviewType::Checkered: case PreviewType::CheckeredInverse: { int flag = 0; flag |= (std::abs(p.x() - x) < (2 * _SplitterButtonWidth + _SplitterButtonMargin)) ? DraggingMode::X : 0; flag |= (std::abs(p.y() - y) < (2 * _SplitterButtonWidth + _SplitterButtonMargin)) ? DraggingMode::Y : 0; return DraggingMode(flag); } break; case PreviewType::Full: return DraggingMode::Inactive; break; } return DraggingMode::Inactive; } void PreviewWidget::paintPreview(QPainter & painter) { if (!_overlayMessage.isEmpty()) { paintOriginalImage(painter); painter.fillRect(_imagePosition, QColor(40, 40, 40, 150)); painter.setPen(Qt::green); painter.drawText(_imagePosition, Qt::AlignCenter | Qt::TextWordWrap, _overlayMessage); return; } if (!_errorMessage.isEmpty()) { if (_errorImage.isNull() || (_errorImage.size() != size())) { updateErrorImage(); } painter.drawImage(0, 0, _errorImage); paintKeypoints(painter); return; } if (!_image->width() && !_image->height()) { painter.fillRect(rect(), QBrush(_transparency)); paintKeypoints(painter); return; } updatePreviewImagePosition(); if (hasAlphaChannel(*_image)) { painter.fillRect(_imagePosition, QBrush(_transparency)); } QImage qimage; convertGmicImageToQImage(_image->get_resize(_imagePosition.width(), _imagePosition.height(), 1, -100, 1), qimage); painter.drawImage(_imagePosition, qimage); paintKeypoints(painter); } void PreviewWidget::paintOriginalImage(QPainter & painter) { gmic_image image; getOriginalImageCrop(image); updateOriginalImagePosition(); if (!image.width() && !image.height()) { painter.fillRect(rect(), QBrush(_transparency)); } else { image.resize(_imagePosition.width(), _imagePosition.height(), 1, -100, 1); if (hasAlphaChannel(image)) { painter.fillRect(_imagePosition, QBrush(_transparency)); } QImage qimage; convertGmicImageToQImage(image, qimage); painter.drawImage(_imagePosition, qimage); paintKeypoints(painter); } } void PreviewWidget::paintSplittedPreview(QPainter & painter) { QRect position = splittedPreviewPosition(); // int x = (_imagePosition.left() <= 0) ? (_xPreviewSplit * width()) : (_imagePosition.left() + _xPreviewSplit * _imagePosition.width()); // int y = (_imagePosition.top() <= 0) ? (_yPreviewSplit * height()) : (_imagePosition.top() + _yPreviewSplit * _imagePosition.height()); int x = (position.left() + _xPreviewSplit * position.width()); int y = (position.top() + _yPreviewSplit * position.height()); switch (_previewType) { case PreviewType::Full: break; case PreviewType::ForwardHorizontal: paintOriginalImage(painter); painter.save(); painter.setClipRect(position.left(), y, position.width(), 1 + position.bottom() - y); paintPreview(painter); painter.restore(); break; case PreviewType::ForwardVertical: paintOriginalImage(painter); painter.save(); painter.setClipRect(x, position.top(), 1 + position.right() - x, position.height()); paintPreview(painter); painter.restore(); break; case PreviewType::BackwardHorizontal: paintPreview(painter); painter.save(); painter.setClipRect(position.left(), y, position.width(), 1 + position.bottom() - y); paintOriginalImage(painter); painter.restore(); break; case PreviewType::BackwardVertical: paintPreview(painter); painter.save(); painter.setClipRect(x, position.top(), 1 + position.right() - x, position.height()); paintOriginalImage(painter); painter.restore(); break; case PreviewType::DuplicateTop: paintOriginalImage(painter); painter.save(); painter.setClipRect(position.left(), y, position.width(), 1 + position.bottom() - y); painter.translate(QPoint(0, y - position.top())); paintPreview(painter); painter.restore(); break; case PreviewType::DuplicateBottom: paintOriginalImage(painter); painter.save(); painter.setClipRect(0, position.top(), width(), y); painter.translate(QPoint(0, y - position.bottom())); paintPreview(painter); painter.restore(); break; case PreviewType::DuplicateLeft: paintOriginalImage(painter); painter.save(); painter.setClipRect(x, position.top(), 1 + position.right() - x, position.height()); painter.translate(QPoint(x - position.left(), 0)); paintPreview(painter); painter.restore(); break; case PreviewType::DuplicateRight: paintOriginalImage(painter); painter.save(); painter.setClipRect(position.left(), position.top(), x, position.height()); painter.translate(QPoint(x - position.right(), 0)); paintPreview(painter); painter.restore(); break; case PreviewType::DuplicateHorizontal: // Centered crop with corresponding height painter.save(); painter.save(); painter.setClipRect(position); painter.translate(QPoint(0, (y - position.bottom()) / 2)); paintOriginalImage(painter); painter.restore(); painter.setClipRect(position.left(), y, position.width(), 1 + position.bottom() - y); painter.translate(QPoint(0, (y - position.top()) / 2)); paintPreview(painter); painter.restore(); break; case PreviewType::DuplicateVertical: // Centered crop with corresponding width painter.save(); painter.save(); painter.setClipRect(position); painter.translate(QPoint((x - position.right()) / 2, 0)); paintOriginalImage(painter); painter.restore(); painter.setClipRect(x, position.top(), 1 + position.right() - x, position.height()); painter.translate(QPoint((x - position.left()) / 2, 0)); paintPreview(painter); painter.restore(); break; case PreviewType::Checkered: painter.save(); paintOriginalImage(painter); painter.setClipRect(x, position.top(), 1 + position.right() - x, 1 + y - position.top()); paintPreview(painter); painter.setClipRect(position.left(), y, 1 + x - position.left(), 1 + position.bottom() - y); paintPreview(painter); painter.restore(); break; case PreviewType::CheckeredInverse: painter.save(); paintOriginalImage(painter); painter.setClipRect(position.left(), position.top(), 1 + x - position.left(), 1 + y - position.top()); paintPreview(painter); painter.setClipRect(x, y, 1 + position.right() - x, 1 + position.bottom() - y); paintPreview(painter); painter.restore(); break; } painter.setClipping(false); } void PreviewWidget::paintEvent(QPaintEvent * e) { QPainter painter(this); if (_paintOriginalImage) { paintOriginalImage(painter); } else { if ((_previewType == PreviewType::Full) || !_errorMessage.isEmpty()) { paintPreview(painter); } else { paintSplittedPreview(painter); } } if (_previewEnabled && (_previewType != PreviewType::Full) && _errorMessage.isEmpty()) { paintPreviewSplitter(painter); } e->accept(); } void PreviewWidget::paintPreviewSplitter(QPainter & painter) { painter.end(); painter.begin(this); QPen pen(QColor(0, 0, 0, 164)); pen.setWidth(1); painter.setPen(pen); QRect position = splittedPreviewPosition(); int x = (position.left() + _xPreviewSplit * position.width()); int y = (position.top() + _yPreviewSplit * position.height()); QPolygon leftTriangle; QPolygon topTriangle; QPolygon bottomTriangle; QPolygon rightTriangle; switch (_previewType) { case PreviewType::Full: break; case PreviewType::ForwardHorizontal: case PreviewType::BackwardHorizontal: case PreviewType::DuplicateTop: case PreviewType::DuplicateBottom: case PreviewType::DuplicateHorizontal: x = width() / 2; // int y = (_imagePosition.top() <= 0) ? (_yPreviewSplit * height()) : (_imagePosition.top() + _yPreviewSplit * _imagePosition.height()); // FIXME Remove topTriangle << QPoint(x - _SplitterButtonWidth, y - _SplitterButtonMargin) << QPoint(x, y - (_SplitterButtonMargin + _SplitterButtonWidth)) << QPoint(x + _SplitterButtonWidth, y - _SplitterButtonMargin); bottomTriangle << QPoint(x - _SplitterButtonWidth, y + _SplitterButtonMargin) << QPoint(x, y + (_SplitterButtonMargin + _SplitterButtonWidth)) << QPoint(x + _SplitterButtonWidth, y + _SplitterButtonMargin); painter.setBrush(QColor(255, 255, 255, 164)); painter.drawPolygon(topTriangle); painter.drawPolygon(bottomTriangle); pen.setColor(Qt::black); painter.setPen(pen); painter.drawLine(std::max(0, _imagePosition.left()), y, _imagePosition.right(), y); pen.setDashPattern(QVector() << 4.0 << 4.0); pen.setStyle(Qt::CustomDashLine); pen.setColor(Qt::white); painter.setPen(pen); painter.drawLine(std::max(0, _imagePosition.left()), y, _imagePosition.right(), y); break; case PreviewType::ForwardVertical: case PreviewType::BackwardVertical: case PreviewType::DuplicateLeft: case PreviewType::DuplicateRight: case PreviewType::DuplicateVertical: // int x = (_imagePosition.left() <= 0) ? (_xPreviewSplit * width()) : (_imagePosition.left() + _xPreviewSplit * _imagePosition.width()); y = height() / 2; leftTriangle << QPoint(x - _SplitterButtonMargin, y - _SplitterButtonWidth) << QPoint(x - (_SplitterButtonMargin + _SplitterButtonWidth), y) << QPoint(x - _SplitterButtonMargin, y + _SplitterButtonWidth); rightTriangle << QPoint(x + _SplitterButtonMargin, y - _SplitterButtonWidth) << QPoint(x + (_SplitterButtonMargin + _SplitterButtonWidth), y) << QPoint(x + _SplitterButtonMargin, y + _SplitterButtonWidth); painter.setBrush(QColor(255, 255, 255, 164)); painter.drawPolygon(leftTriangle); painter.drawPolygon(rightTriangle); pen.setColor(Qt::black); painter.setPen(pen); painter.drawLine(x, std::max(0, _imagePosition.top()), x, _imagePosition.bottom()); pen.setDashPattern(QVector() << 4.0 << 4.0); pen.setStyle(Qt::CustomDashLine); pen.setColor(Qt::white); painter.setPen(pen); painter.drawLine(x, std::max(0, _imagePosition.top()), x, _imagePosition.bottom()); break; case PreviewType::Checkered: case PreviewType::CheckeredInverse: // int x = (_imagePosition.left() <= 0) ? (_xPreviewSplit * width()) : (_imagePosition.left() + _xPreviewSplit * _imagePosition.width()); // int y = (_imagePosition.top() <= 0) ? (_yPreviewSplit * height()) : (_imagePosition.top() + _yPreviewSplit * _imagePosition.height()); pen.setColor(Qt::black); painter.setPen(pen); painter.drawLine(std::max(0, _imagePosition.left()), y, _imagePosition.right(), y); painter.drawLine(x, std::max(0, _imagePosition.top()), x, _imagePosition.bottom()); pen.setDashPattern(QVector() << 4.0 << 4.0); pen.setStyle(Qt::CustomDashLine); pen.setColor(Qt::white); painter.setPen(pen); painter.drawLine(std::max(0, _imagePosition.left()), y, _imagePosition.right(), y); painter.drawLine(x, std::max(0, _imagePosition.top()), x, _imagePosition.bottom()); topTriangle << QPoint(x - _SplitterButtonWidth, y - _SplitterButtonMargin) << QPoint(x, y - (_SplitterButtonMargin + _SplitterButtonWidth)) << QPoint(x + _SplitterButtonWidth, y - _SplitterButtonMargin); bottomTriangle << QPoint(x - _SplitterButtonWidth, y + _SplitterButtonMargin) << QPoint(x, y + (_SplitterButtonMargin + _SplitterButtonWidth)) << QPoint(x + _SplitterButtonWidth, y + _SplitterButtonMargin); pen.setColor(QColor(0, 0, 0, 164)); pen.setStyle(Qt::SolidLine); painter.setPen(pen); painter.setBrush(QColor(255, 255, 255, 164)); painter.drawPolygon(topTriangle); painter.drawPolygon(bottomTriangle); break; } } void PreviewWidget::resizeEvent(QResizeEvent * e) { if (isVisible()) { _pendingResize = true; } e->accept(); if (!e->size().width() || !e->size().height()) { return; } if (isAtFullZoom()) { if (_fullImageSize.isNull()) { _currentZoomFactor = 1.0; } else { _currentZoomFactor = std::min(e->size().width() / (double)_fullImageSize.width(), e->size().height() / (double)_fullImageSize.height()); } emit zoomChanged(_currentZoomFactor); } else { updateVisibleRect(); saveVisibleCenter(); } if (!QApplication::topLevelWidgets().isEmpty() && QApplication::topLevelWidgets().at(0)->isMaximized()) { sendUpdateRequest(); } else { displayOriginalImage(); } } void PreviewWidget::normalizedVisibleRect(double & x, double & y, double & width, double & height) const { x = _visibleRect.x; y = _visibleRect.y; width = _visibleRect.w; height = _visibleRect.h; } void PreviewWidget::sendUpdateRequest() { invalidateSavedPreview(); emit previewUpdateRequested(); } bool PreviewWidget::isAtDefaultZoom() const { return (_previewFactor == PreviewFactorAny) || (std::abs(_currentZoomFactor - defaultZoomFactor()) < 0.05) || ((_previewFactor == PreviewFactorActualSize) && (_currentZoomFactor >= 1.0)); } double PreviewWidget::currentZoomFactor() const { return _currentZoomFactor; } bool PreviewWidget::event(QEvent * event) { if ((event->type() == QEvent::WindowActivate) && _pendingResize) { _pendingResize = false; if (width() && height()) { updateVisibleRect(); saveVisibleCenter(); sendUpdateRequest(); } } return QWidget::event(event); } bool PreviewWidget::eventFilter(QObject *, QEvent * event) { if (((event->type() == QEvent::MouseButtonRelease) || (event->type() == QEvent::NonClientAreaMouseButtonRelease)) && _pendingResize) { _pendingResize = false; if (width() && height()) { updateVisibleRect(); saveVisibleCenter(); sendUpdateRequest(); } } return false; } void PreviewWidget::leaveEvent(QEvent *) {} #if QT_VERSION_GTE(6, 0, 0) void PreviewWidget::enterEvent(QEnterEvent *) {} #else void PreviewWidget::enterEvent(QEvent *) {} #endif void PreviewWidget::wheelEvent(QWheelEvent * event) { double degrees = event->angleDelta().y() / 8.0; int steps = static_cast(std::fabs(degrees) / 15.0); #if QT_VERSION_GTE(5, 14, 0) const QPoint position = event->position().toPoint(); #else const QPoint position = event->pos(); #endif if (degrees > 0.0) { zoomIn(position - _imagePosition.topLeft(), steps); } else { zoomOut(position - _imagePosition.topLeft(), steps); } event->accept(); } void PreviewWidget::mousePressEvent(QMouseEvent * e) { if (e->button() == Qt::LeftButton || e->button() == Qt::MiddleButton) { int index = keypointUnderMouse(e->pos()); if (index != -1) { _movedKeypointIndex = index; _keypointTimestamp = e->timestamp(); abortUpdateTimer(); _mousePosition = QPoint(-1, -1); if (!_keypoints[index].keepOpacityWhenSelected) { update(); } } else if ((_draggingMode = splitterDraggingModeFromMousePosition(e->pos())) != DraggingMode::Inactive) { } else if (_imagePosition.contains(e->pos())) { _mousePosition = e->pos(); abortUpdateTimer(); } else { _mousePosition = QPoint(-1, -1); } e->accept(); return; } if (_rightClickEnabled && (e->button() == Qt::RightButton)) { if (_imagePosition.contains(e->pos())) { _movedKeypointIndex = keypointUnderMouse(e->pos()); _movedKeypointOrigin = e->pos(); } if (_previewEnabled) { displayOriginalImage(); } e->accept(); return; } e->ignore(); } void PreviewWidget::mouseReleaseEvent(QMouseEvent * e) { if (e->button() == Qt::LeftButton || e->button() == Qt::MiddleButton) { if (_draggingMode != DraggingMode::Inactive) { _draggingMode = DraggingMode::Inactive; } else if (!isAtFullZoom() && _mousePosition != QPoint(-1, -1)) { QPoint move = _mousePosition - e->pos(); onMouseTranslationInImage(move); sendUpdateRequest(); _mousePosition = QPoint(-1, -1); } else if (_movedKeypointIndex != -1) { QPointF p = pointInWidgetToKeypointPosition(e->pos()); KeypointList::Keypoint & kp = _keypoints[_movedKeypointIndex]; kp.setPosition(p); _movedKeypointIndex = -1; const unsigned char flags = KeypointMouseReleaseEvent | (kp.burst ? KeypointBurstEvent : 0); emit keypointPositionsChanged(flags, e->timestamp()); } e->accept(); return; } if (e->button() == Qt::RightButton) { if (_movedKeypointIndex != -1 && (_movedKeypointOrigin != e->pos())) { emit keypointPositionsChanged(KeypointMouseReleaseEvent, e->timestamp()); } _movedKeypointIndex = -1; _movedKeypointOrigin = QPoint(-1, -1); } if (_rightClickEnabled && _paintOriginalImage && (e->button() == Qt::RightButton)) { if (_previewEnabled) { if (!_errorImage.isNull()) { _paintOriginalImage = false; update(); } else if (_savedPreviewIsValid) { restorePreview(); _paintOriginalImage = false; update(); } else { displayOriginalImage(); } } e->accept(); return; } } // namespace GmicQt void PreviewWidget::mouseMoveEvent(QMouseEvent * e) { if (hasMouseTracking() && (_movedKeypointIndex == -1)) { DraggingMode mode = splitterDraggingModeFromMousePosition(e->pos()); if ((_mousePosition == QPoint(-1, -1)) && (keypointUnderMouse(e->pos()) != -1)) { OverrideCursor::set(Qt::PointingHandCursor); } else if (mode == DraggingMode::X) { OverrideCursor::set(Qt::SplitHCursor); } else if (mode == DraggingMode::Y) { OverrideCursor::set(Qt::SplitVCursor); } else if (mode == DraggingMode::XY) { OverrideCursor::set(Qt::SizeAllCursor); } else { OverrideCursor::setNormal(); } } if (e->buttons() & (Qt::LeftButton | Qt::MiddleButton)) { if (_draggingMode != DraggingMode::Inactive) { if (_draggingMode & DraggingMode::X) { if (_imagePosition.left() <= 0) { _xPreviewSplit = clamped(e->pos().x() / float(width()), 0.0f, 1.0f); } else { _xPreviewSplit = clamped((e->pos().x() - _imagePosition.left()) / float(_imagePosition.width()), 0.0f, 1.0f); } } if (_draggingMode & DraggingMode::Y) { if (_imagePosition.top() <= 0) { _yPreviewSplit = clamped(e->pos().y() / float(height()), 0.0f, 1.0f); } else { _yPreviewSplit = clamped((e->pos().y() - _imagePosition.top()) / float(_imagePosition.height()), 0.0f, 1.0f); } } update(); } else if (!isAtFullZoom() && (_mousePosition != QPoint(-1, -1))) { QPoint move = _mousePosition - e->pos(); if (move.manhattanLength()) { onMouseTranslationInImage(move); _mousePosition = e->pos(); } } else if (_movedKeypointIndex != -1) { QPointF p = pointInWidgetToKeypointPosition(e->pos()); KeypointList::Keypoint & kp = _keypoints[_movedKeypointIndex]; kp.setPosition(p); repaint(); if (kp.burst) { unsigned char flags = 0; if (e->timestamp() - _keypointTimestamp > 15) { flags |= KeypointBurstEvent; } emit keypointPositionsChanged(flags, e->timestamp()); _keypointTimestamp = e->timestamp(); } else { emit keypointPositionsChanged(0, e->timestamp()); } } e->accept(); } else if (e->buttons() & Qt::RightButton) { if (_movedKeypointIndex != -1) { QPointF p = pointInWidgetToKeypointPosition(e->pos()); KeypointList::Keypoint & kp = _keypoints[_movedKeypointIndex]; kp.setPosition(p); update(); emit keypointPositionsChanged(0, e->timestamp()); } } else { e->ignore(); } } bool PreviewWidget::isAtFullZoom() const { return _visibleRect.isFull(); } void PreviewWidget::abortUpdateTimer() { if (_timerID) { killTimer(_timerID); _timerID = 0; } } void PreviewWidget::getPositionStringCorrection(double & xFactor, double & yFactor) const { xFactor = _currentZoomFactor * (_visibleRect.w * _fullImageSize.width()); yFactor = _currentZoomFactor * (_visibleRect.h * _fullImageSize.height()); } void PreviewWidget::onMouseTranslationInImage(QPoint shift) { if (shift.manhattanLength()) { emit previewVisibleRectIsChanging(); translateFullImage(shift.x() / _currentZoomFactor, shift.y() / _currentZoomFactor); displayOriginalImage(); } } void PreviewWidget::translateFullImage(double dx, double dy) { PreviewPoint previousPosition = _visibleRect.topLeft(); if (!_fullImageSize.isNull()) { translateNormalized(dx / _fullImageSize.width(), dy / _fullImageSize.height()); if (_visibleRect.topLeft() != previousPosition) { saveVisibleCenter(); } } } void PreviewWidget::translateNormalized(double dx, double dy) { _visibleRect.x = std::max(0.0, std::min(1.0 - _visibleRect.w, _visibleRect.x + dx)); _visibleRect.y = std::max(0.0, std::min(1.0 - _visibleRect.h, _visibleRect.y + dy)); } void PreviewWidget::zoomIn() { zoomIn(_imagePosition.center(), 1); } void PreviewWidget::zoomOut() { zoomOut(_imagePosition.center(), 1); } void PreviewWidget::zoomFullImage() { _visibleRect = PreviewRect::Full; if (_fullImageSize.isNull()) { _currentZoomFactor = 1.0; } else { _currentZoomFactor = std::min(width() / (double)_fullImageSize.width(), height() / (double)_fullImageSize.height()); } onPreviewParametersChanged(); emit zoomChanged(_currentZoomFactor); } void PreviewWidget::zoomIn(QPoint p, int steps) { if (_fullImageSize.isNull() || (_zoomConstraint == ZoomConstraint::Fixed)) { return; } double previousZoomFactor = _currentZoomFactor; if (_currentZoomFactor >= PREVIEW_MAX_ZOOM_FACTOR) { return; } double mouseX = p.x() / (_currentZoomFactor * _fullImageSize.width()) + _visibleRect.x; double mouseY = p.y() / (_currentZoomFactor * _fullImageSize.height()) + _visibleRect.y; while (steps--) { _currentZoomFactor *= 1.2; } if (_currentZoomFactor >= PREVIEW_MAX_ZOOM_FACTOR) { _currentZoomFactor = PREVIEW_MAX_ZOOM_FACTOR; } if (_currentZoomFactor == previousZoomFactor) { return; } updateVisibleRect(); double newMouseX = p.x() / (_currentZoomFactor * _fullImageSize.width()) + _visibleRect.x; double newMouseY = p.y() / (_currentZoomFactor * _fullImageSize.height()) + _visibleRect.y; translateNormalized(mouseX - newMouseX, mouseY - newMouseY); saveVisibleCenter(); onPreviewParametersChanged(); emit zoomChanged(_currentZoomFactor); } void PreviewWidget::zoomOut(QPoint p, int steps) { if ((_zoomConstraint == ZoomConstraint::Fixed) || ((_zoomConstraint == ZoomConstraint::OneOrMore) && (_currentZoomFactor <= 1.0)) || isAtFullZoom() || _fullImageSize.isNull()) { return; } double mouseX = p.x() / (_currentZoomFactor * _fullImageSize.width()) + _visibleRect.x; double mouseY = p.y() / (_currentZoomFactor * _fullImageSize.height()) + _visibleRect.y; while (steps--) { _currentZoomFactor /= 1.2; } if ((_zoomConstraint == ZoomConstraint::OneOrMore) && (_currentZoomFactor <= 1.0)) { _currentZoomFactor = 1.0; } updateVisibleRect(); if (isAtFullZoom()) { _currentZoomFactor = std::min(width() / (double)_fullImageSize.width(), height() / (double)_fullImageSize.height()); } double newMouseX = p.x() / (_currentZoomFactor * _fullImageSize.width()) + _visibleRect.x; double newMouseY = p.y() / (_currentZoomFactor * _fullImageSize.height()) + _visibleRect.y; translateNormalized(mouseX - newMouseX, mouseY - newMouseY); saveVisibleCenter(); onPreviewParametersChanged(); emit zoomChanged(_currentZoomFactor); } void PreviewWidget::setZoomLevel(double zoom) { if ((zoom == _currentZoomFactor) || _fullImageSize.isNull()) { return; } if ((_zoomConstraint == ZoomConstraint::OneOrMore) && (zoom <= 1.0)) { zoom = 1.0; } if ((zoom > PREVIEW_MAX_ZOOM_FACTOR) || (isAtFullZoom() && (zoom < _currentZoomFactor))) { emit zoomChanged(_currentZoomFactor); return; } double previousZoomFactor = _currentZoomFactor; QPoint p = _imagePosition.center(); double mouseX = p.x() / (_currentZoomFactor * _fullImageSize.width()) + _visibleRect.x; double mouseY = p.y() / (_currentZoomFactor * _fullImageSize.height()) + _visibleRect.y; _currentZoomFactor = zoom; updateVisibleRect(); if (isAtFullZoom()) { _currentZoomFactor = std::min(width() / (double)_fullImageSize.width(), height() / (double)_fullImageSize.height()); } if (_currentZoomFactor == previousZoomFactor) { return; } double newMouseX = p.x() / (_currentZoomFactor * _fullImageSize.width()) + _visibleRect.x; double newMouseY = p.y() / (_currentZoomFactor * _fullImageSize.height()) + _visibleRect.y; translateNormalized(mouseX - newMouseX, mouseY - newMouseY); saveVisibleCenter(); onPreviewParametersChanged(); emit zoomChanged(_currentZoomFactor); } double PreviewWidget::defaultZoomFactor() const { if (_fullImageSize.isNull()) { return 1.0; } if (_previewFactor == PreviewFactorFullImage) { return std::min(width() / static_cast(_fullImageSize.width()), height() / static_cast(_fullImageSize.height())); } if (_previewFactor > 1.0f) { return _previewFactor * std::min(width() / (double)_fullImageSize.width(), height() / (double)_fullImageSize.height()); } return 1.0; // We suppose PreviewFactorActualSize } void PreviewWidget::saveVisibleCenter() { _savedVisibleCenter = _visibleRect.center(); } int PreviewWidget::roundedDistance(const QPoint & p1, const QPoint & p2) { const double dx = p1.x() - p2.x(); const double dy = p1.y() - p2.y(); return static_cast(std::round(std::sqrt(dx * dx + dy * dy))); } void PreviewWidget::setPreviewFactor(float filterFactor, bool reset) { _previewFactor = filterFactor; if (_fullImageSize.isNull()) { _visibleRect = PreviewRect::Full; _currentZoomFactor = 1.0; emit zoomChanged(_currentZoomFactor); return; } if ((_previewFactor == PreviewFactorFullImage) || ((_previewFactor == PreviewFactorAny) && reset)) { _currentZoomFactor = std::min(width() / (double)_fullImageSize.width(), height() / (double)_fullImageSize.height()); _visibleRect = PreviewRect::Full; if (reset) { saveVisibleCenter(); } } else if ((_previewFactor == PreviewFactorAny) && !reset) { updateVisibleRect(); _visibleRect.moveCenter(_savedVisibleCenter); } else { _currentZoomFactor = defaultZoomFactor(); updateVisibleRect(); if (reset) { _visibleRect.moveToCenter(); saveVisibleCenter(); } else { _visibleRect.moveCenter(_savedVisibleCenter); } } emit zoomChanged(_currentZoomFactor); } void PreviewWidget::displayOriginalImage() { _paintOriginalImage = true; update(); } QSize PreviewWidget::originalImageCropSize() { return CroppedActiveLayerProxy::getSize(_visibleRect.x, _visibleRect.y, _visibleRect.w, _visibleRect.h); } void PreviewWidget::getOriginalImageCrop(gmic_library::gmic_image & image) { CroppedActiveLayerProxy::get(image, _visibleRect.x, _visibleRect.y, _visibleRect.w, _visibleRect.h); } void PreviewWidget::onPreviewParametersChanged() { emit previewVisibleRectIsChanging(); if (_timerID) { killTimer(_timerID); } displayOriginalImage(); _timerID = startTimer(RESIZE_DELAY); _savedPreviewIsValid = false; } void PreviewWidget::timerEvent(QTimerEvent * e) { killTimer(e->timerId()); _timerID = 0; sendUpdateRequest(); } void PreviewWidget::onPreviewToggled(bool on) { _previewEnabled = on; if (on) { if (_savedPreviewIsValid) { restorePreview(); _paintOriginalImage = false; update(); } else { emit previewUpdateRequested(); } } else { displayOriginalImage(); } } void PreviewWidget::setPreviewType(PreviewType previewType) { _previewType = previewType; if (previewType != PreviewType::Full) { _savedPreviewType = previewType; } setMouseTracking(previewType != PreviewType::Full); update(); } void PreviewWidget::setPreviewEnabled(bool on) { _previewEnabled = on; } const KeypointList & PreviewWidget::keypoints() const { return _keypoints; } void PreviewWidget::setKeypoints(const KeypointList & keypoints) { _keypoints = keypoints; setMouseTracking(_keypoints.size()); update(); } void PreviewWidget::setZoomConstraint(const ZoomConstraint & constraint) { _zoomConstraint = constraint; } ZoomConstraint PreviewWidget::zoomConstraint() const { return _zoomConstraint; } PreviewWidget::PreviewType PreviewWidget::previewType() const { return _previewType; } PreviewWidget::PreviewType PreviewWidget::savedPreviewType() const { return _savedPreviewType; } void PreviewWidget::invalidateSavedPreview() { _savedPreviewIsValid = false; } void PreviewWidget::restorePreview() { *_image = *_savedPreview; } void PreviewWidget::enableRightClick() { _rightClickEnabled = true; } void PreviewWidget::disableRightClick() { _rightClickEnabled = false; } bool PreviewWidget::PreviewRect::operator!=(const PreviewRect & other) const { return (x != other.x) || (y != other.y) || (w != other.w) || (h != other.h); } bool PreviewWidget::PreviewRect::operator==(const PreviewRect & other) const { return (x == other.x) && (y == other.y) && (w == other.w) && (h == other.h); } bool PreviewWidget::PreviewRect::isFull() const { return (*this) == PreviewRect::Full; } PreviewWidget::PreviewPoint PreviewWidget::PreviewRect::center() const { return {x + w / 2.0, y + h / 2.0}; } PreviewWidget::PreviewPoint PreviewWidget::PreviewRect::topLeft() const { return {x, y}; } void PreviewWidget::PreviewRect::moveCenter(const PreviewWidget::PreviewPoint & p) { const double halfWidth = w / 2.0; const double halfHeight = h / 2.0; x = std::min(std::max(0.0, p.x - halfWidth), 1.0 - w); y = std::min(std::max(0.0, p.y - halfHeight), 1.0 - h); } void PreviewWidget::PreviewRect::moveToCenter() { x = std::max(0.0, (1.0 - w) / 2.0); y = std::max(0.0, (1.0 - h) / 2.0); } bool PreviewWidget::PreviewPoint::isValid() const { return (x >= 0.0) && (x <= 1.0) && (y >= 0.0) && (y <= 1.0); } bool PreviewWidget::PreviewPoint::operator!=(const PreviewWidget::PreviewPoint & other) const { return (x != other.x) || (y != other.y); } bool PreviewWidget::PreviewPoint::operator==(const PreviewWidget::PreviewPoint & other) const { return (x == other.x) && (y == other.y); } } // namespace GmicQt ================================================ FILE: src/Widgets/PreviewWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file PreviewWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_PREVIEWWIDGET_H #define GMIC_QT_PREVIEWWIDGET_H #include #include #include #include #include #include #include #include #include #include "Host/GmicQtHost.h" #include "KeypointList.h" #include "ZoomConstraint.h" namespace gmic_library { template struct gmic_list; template struct gmic_image; } // namespace gmic_library namespace GmicQt { class PreviewWidget : public QWidget { Q_OBJECT public: explicit PreviewWidget(QWidget * parent); ~PreviewWidget() override; void setFullImageSize(const QSize &); void updateFullImageSizeIfDifferent(const QSize &); void normalizedVisibleRect(double & x, double & y, double & width, double & height) const; bool isAtDefaultZoom() const; bool isAtFullZoom() const; void getPositionStringCorrection(double & xFactor, double & yFactor) const; double currentZoomFactor() const; double defaultZoomFactor() const; void updateVisibleRect(); void centerVisibleRect(); void setPreviewImage(const gmic_library::gmic_image & image); void setOverlayMessage(const QString &); void clearOverlayMessage(); void setPreviewErrorMessage(const QString &); const gmic_library::gmic_image & image() const; void translateNormalized(double dx, double dy); void translateFullImage(double dx, double dy); void setPreviewEnabled(bool on); const KeypointList & keypoints() const; void setKeypoints(const KeypointList &); void setZoomConstraint(const ZoomConstraint & constraint); ZoomConstraint zoomConstraint() const; enum KeypointMotionFlags { KeypointBurstEvent = 1, KeypointMouseReleaseEvent = 2 }; enum class PreviewType { Full, ForwardHorizontal, ForwardVertical, BackwardHorizontal, BackwardVertical, DuplicateTop, DuplicateLeft, DuplicateBottom, DuplicateRight, DuplicateHorizontal, DuplicateVertical, Checkered, CheckeredInverse }; PreviewType previewType() const; PreviewType savedPreviewType() const; protected: void resizeEvent(QResizeEvent *) override; void timerEvent(QTimerEvent *) override; bool event(QEvent * event) override; void wheelEvent(QWheelEvent * event) override; void mouseMoveEvent(QMouseEvent * e) override; void mouseReleaseEvent(QMouseEvent * e) override; void mousePressEvent(QMouseEvent * e) override; void paintEvent(QPaintEvent * e) override; bool eventFilter(QObject *, QEvent * event) override; void leaveEvent(QEvent *) override; #if QT_VERSION_GTE(6, 0, 0) void enterEvent(QEnterEvent *) override; #else void enterEvent(QEvent *) override; #endif signals: void previewVisibleRectIsChanging(); void previewUpdateRequested(); void keypointPositionsChanged(unsigned int flags, unsigned long time); void zoomChanged(double zoom); public slots: void abortUpdateTimer(); void sendUpdateRequest(); void onMouseTranslationInImage(QPoint shift); void zoomIn(); void zoomOut(); void zoomFullImage(); void zoomIn(QPoint, int steps); void zoomOut(QPoint, int steps); void setZoomLevel(double zoom); /** * @brief setPreviewFactor * @param filterFactor * @param reset If true, zoomFactor is set to "Full Image" if * filterFactor is PreviewFactorAny */ void setPreviewFactor(float filterFactor, bool reset); void displayOriginalImage(); void onPreviewParametersChanged(); void invalidateSavedPreview(); void restorePreview(); void enableRightClick(); void disableRightClick(); void onPreviewToggled(bool on); void setPreviewType(PreviewType previewType); private: void paintPreview(QPainter &); void paintOriginalImage(QPainter &); void paintSplittedPreview(QPainter &); void getOriginalImageCrop(gmic_library::gmic_image & image); void updateOriginalImagePosition(); void updatePreviewImagePosition(); QRect splittedPreviewPosition(); void updateErrorImage(); void paintPreviewSplitter(QPainter & painter); void paintKeypoints(QPainter & painter); int keypointUnderMouse(const QPoint & p); QPoint keypointToPointInWidget(const KeypointList::Keypoint & kp) const; QPoint keypointToVisiblePointInWidget(const KeypointList::Keypoint & kp) const; QPointF pointInWidgetToKeypointPosition(const QPoint &) const; enum DraggingMode { Inactive = 0, X = 1, Y = 2, XY = 3 }; DraggingMode splitterDraggingModeFromMousePosition(const QPoint & p); QSize originalImageCropSize(); void saveVisibleCenter(); gmic_library::gmic_image * _image; gmic_library::gmic_image * _savedPreview; QSize _fullImageSize; double _currentZoomFactor; ZoomConstraint _zoomConstraint; /* * (0) for a 1:1 preview (PreviewFactorActualSize) * (1) for previewing the whole image (PreviewFactorFullImage) * (2) for 1/2 image * GmigQt::PreviewFactorAny */ float _previewFactor; int _timerID; bool _previewEnabled; struct PreviewPoint { double x, y; bool isValid() const; bool operator!=(const PreviewPoint &) const; bool operator==(const PreviewPoint &) const; QPointF toPointF() const { return QPointF((qreal)x, (qreal)y); } }; struct PreviewRect { double x; double y; double w; double h; bool operator!=(const PreviewRect &) const; bool operator==(const PreviewRect &) const; bool isFull() const; PreviewPoint center() const; PreviewPoint topLeft() const; void moveCenter(const PreviewPoint & p); void moveToCenter(); QRectF toRectF() const { return QRectF((qreal)x, (qreal)y, (qreal)w, (qreal)h); } static const PreviewRect Full; }; static const int RESIZE_DELAY = 400; static int roundedDistance(const QPoint & p1, const QPoint & p2); PreviewRect _visibleRect; PreviewPoint _savedVisibleCenter; bool _pendingResize; QPixmap _transparency; bool _savedPreviewIsValid; QRect _imagePosition; QPoint _mousePosition; QPixmap _transparentBackground; bool _paintOriginalImage; QSize _originalImageSize; QSize _originalImageScaledSize; bool _rightClickEnabled; QString _errorMessage; QString _overlayMessage; QImage _errorImage; KeypointList _keypoints; int _movedKeypointIndex; QPoint _movedKeypointOrigin; unsigned long _keypointTimestamp; PreviewType _previewType; PreviewType _savedPreviewType; float _xPreviewSplit; float _yPreviewSplit; static const int _SplitterButtonWidth = 10; static const int _SplitterButtonMargin = 2; DraggingMode _draggingMode; }; } // namespace GmicQt #endif // GMIC_QT_PREVIEWWIDGET_H ================================================ FILE: src/Widgets/ProgressInfoWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ProgressInfoWidget.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/ProgressInfoWidget.h" #include #include #include #include #include "GmicProcessor.h" #include "IconLoader.h" #include "Misc.h" #include "ui_progressinfowidget.h" #ifdef _IS_WINDOWS_ #include #include #include #endif namespace GmicQt { ProgressInfoWidget::ProgressInfoWidget(QWidget * parent) : QWidget(parent), ui(new Ui::ProgressInfoWidget), _gmicProcessor(nullptr) { ui->setupUi(this); _mode = Mode::GmicProcessing; _canceled = false; _growing = true; setWindowTitle(tr("G'MIC-Qt Plug-in progression")); ui->progressBar->setRange(0, 100); ui->tbCancel->setIcon(IconLoader::load("cancel")); ui->tbCancel->setToolTip(tr("Abort")); connect(&_timer, &QTimer::timeout, this, &ProgressInfoWidget::onTimeOut); connect(ui->tbCancel, &QToolButton::clicked, this, &ProgressInfoWidget::cancel); if (!parent) { QRect position = frameGeometry(); QList screens = QGuiApplication::screens(); if (!screens.isEmpty()) { position.moveCenter(screens.front()->geometry().center()); move(position.topLeft()); } } _showingTimer.setSingleShot(true); _showingTimer.setInterval(500); connect(&_showingTimer, &QTimer::timeout, this, &ProgressInfoWidget::onTimeOut); connect(&_showingTimer, &QTimer::timeout, &_timer, QOverload<>::of(&QTimer::start)); connect(&_showingTimer, &QTimer::timeout, this, &ProgressInfoWidget::show); } ProgressInfoWidget::~ProgressInfoWidget() { delete ui; } ProgressInfoWidget::Mode ProgressInfoWidget::mode() const { return _mode; } bool ProgressInfoWidget::hasBeenCanceled() const { return _canceled; } void ProgressInfoWidget::setGmicProcessor(const GmicProcessor * processor) { _gmicProcessor = processor; } void ProgressInfoWidget::onTimeOut() { if (_mode == Mode::GmicProcessing) { updateThreadInformation(); } else if (_mode == Mode::FiltersUpdate) { updateFilterUpdateProgression(); } } void ProgressInfoWidget::cancel() { _canceled = true; emit canceled(); } void ProgressInfoWidget::stopAnimationAndHide() { _timer.stop(); _showingTimer.stop(); hide(); } void ProgressInfoWidget::startFilterThreadAnimationAndShow() { layout()->removeWidget(ui->tbCancel); layout()->removeWidget(ui->progressBar); layout()->removeWidget(ui->label); layout()->addWidget(ui->progressBar); layout()->addWidget(ui->label); ui->tbCancel->hide(); ui->label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); ui->label->setAlignment(Qt::AlignRight); #if defined(_IS_UNIX_) || defined(_IS_WINDOWS_) QString largestText(tr("[Processing 88:00:00.888 | 888.9 GiB]")); #else QString largestText(tr("[Processing 88:00:00.888]")); #endif QFontMetrics fm(ui->label->font()); ui->label->setMinimumWidth(fm.horizontalAdvance(largestText)); _canceled = false; _mode = Mode::GmicProcessing; ui->progressBar->setRange(0, 100); ui->progressBar->setValue(0); ui->progressBar->setInvertedAppearance(false); onTimeOut(); _timer.setInterval(250); _timer.start(); show(); } void ProgressInfoWidget::startFiltersUpdateAnimationAndShow() { layout()->removeWidget(ui->tbCancel); layout()->removeWidget(ui->progressBar); layout()->removeWidget(ui->label); layout()->addWidget(ui->label); layout()->addWidget(ui->tbCancel); layout()->addWidget(ui->progressBar); _mode = Mode::FiltersUpdate; _canceled = false; // ui->progressBar->setRange(0, 0); ui->progressBar->setValue(AnimationStep); ui->progressBar->setTextVisible(false); ui->progressBar->setInvertedAppearance(false); ui->label->setText(tr("Updating filters...")); ui->label->setMinimumWidth(0); ui->label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); ui->label->setAlignment(Qt::AlignLeft); _timer.setInterval(75); _growing = true; ui->tbCancel->setVisible(true); _showingTimer.start(); // Connected to : // 1. onTimeOut(); // 2. _timer.start(); // 3. show(); } void ProgressInfoWidget::showBusyIndicator() { ui->progressBar->setRange(0, 0); } void ProgressInfoWidget::updateThreadInformation() { int ms = _gmicProcessor->duration(); float progress = _gmicProcessor->progress(); if (progress >= 0) { ui->progressBar->setInvertedAppearance(false); ui->progressBar->setTextVisible(true); ui->progressBar->setValue((int)progress); } else { ui->progressBar->setTextVisible(false); int value = ui->progressBar->value(); value += 20; if (value > 100) { ui->progressBar->setValue(value - 100); ui->progressBar->setInvertedAppearance(!ui->progressBar->invertedAppearance()); } else { ui->progressBar->setValue(value); } } QString durationStr = readableDuration(ms); #ifdef _IS_UNIX_ // Get memory usage QString memoryStr("? KiB"); QFile status("/proc/self/status"); if (status.open(QFile::ReadOnly)) { QByteArray text = status.readAll(); const char * str = strstr(text.constData(), "VmRSS:"); quint64 kiB; if (str && sscanf(str + 7, "%llu", &kiB)) { memoryStr = readableSize(kiB * 1024); } } ui->label->setText(QString(tr("[Processing %1 | %2]")).arg(durationStr).arg(memoryStr)); #elif defined(_IS_WINDOWS_) PROCESS_MEMORY_COUNTERS counters; quint64 kiB = 0; if (GetProcessMemoryInfo(GetCurrentProcess(), &counters, sizeof(counters))) { kiB = static_cast(counters.WorkingSetSize / 1024); } QString memoryStr = readableSize(kiB * 1024); ui->label->setText(QString(tr("[Processing %1 | %2]")).arg(durationStr).arg(memoryStr)); #else ui->label->setText(QString(tr("[Processing %1]")).arg(durationStr)); #endif } void ProgressInfoWidget::updateFilterUpdateProgression() { int value = ui->progressBar->value(); if (_growing) { value += AnimationStep; if (value >= 100) { value = 100 - AnimationStep; ui->progressBar->setInvertedAppearance(!ui->progressBar->invertedAppearance()); ui->progressBar->setValue(value); _growing = false; } else { ui->progressBar->setValue(value); } } else { value -= AnimationStep; if (value <= 0) { value = AnimationStep; ui->progressBar->setValue(value); _growing = true; } else { ui->progressBar->setValue(value); } } } } // namespace GmicQt ================================================ FILE: src/Widgets/ProgressInfoWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ProgressInfoWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_PROGRESSINFOWIDGET_H #define GMIC_QT_PROGRESSINFOWIDGET_H #include #include namespace Ui { class ProgressInfoWidget; } namespace GmicQt { class GmicProcessor; class ProgressInfoWidget : public QWidget { Q_OBJECT public: explicit ProgressInfoWidget(QWidget * parent); ~ProgressInfoWidget(); enum class Mode { GmicProcessing, FiltersUpdate }; Mode mode() const; bool hasBeenCanceled() const; void setGmicProcessor(const GmicProcessor * processor); public slots: void cancel(); void onTimeOut(); void stopAnimationAndHide(); void startFilterThreadAnimationAndShow(); void startFiltersUpdateAnimationAndShow(); void showBusyIndicator(); signals: void canceled(); private: void updateThreadInformation(); void updateFilterUpdateProgression(); Ui::ProgressInfoWidget * ui; const GmicProcessor * _gmicProcessor; QTimer _timer; QTimer _showingTimer; Mode _mode; bool _canceled; bool _growing; static const int AnimationStep = 10; }; } // namespace GmicQt #endif // GMIC_QT_PROGRESSINFOWIDGET_H ================================================ FILE: src/Widgets/ProgressInfoWindow.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ProgressInfoWindow.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "ProgressInfoWindow.h" #include #include #include #include #include #include #include #include "Common.h" #include "FilterThread.h" #include "Globals.h" #include "GmicStdlib.h" #include "HeadlessProcessor.h" #include "Settings.h" #include "Updater.h" #include "ui_progressinfowindow.h" #include "gmic.h" namespace GmicQt { ProgressInfoWindow::ProgressInfoWindow(HeadlessProcessor * processor) : QMainWindow(nullptr), ui(new Ui::ProgressInfoWindow), _processor(processor) { ui->setupUi(this); setWindowTitle(tr("G'MIC-Qt Plug-in progression")); processor->setProgressWindow(this); ui->label->setText(QString("%1").arg(processor->filterName())); ui->progressBar->setRange(0, 100); ui->progressBar->setValue(100); ui->info->setText(""); connect(processor, &HeadlessProcessor::progressWindowShouldShow, this, &ProgressInfoWindow::show); connect(ui->pbCancel, &QPushButton::clicked, this, &ProgressInfoWindow::onCancelClicked); connect(processor, &HeadlessProcessor::progression, this, &ProgressInfoWindow::onProgress); connect(processor, &HeadlessProcessor::done, this, &ProgressInfoWindow::onProcessingFinished); _isShown = false; if (Settings::darkThemeEnabled()) { setDarkTheme(); } } ProgressInfoWindow::~ProgressInfoWindow() { delete ui; } void ProgressInfoWindow::showEvent(QShowEvent *) { QRect position = frameGeometry(); QList screens = QGuiApplication::screens(); if (!screens.isEmpty()) { position.moveCenter(screens.front()->geometry().center()); move(position.topLeft()); } _isShown = true; } void ProgressInfoWindow::closeEvent(QCloseEvent * event) { event->accept(); } void ProgressInfoWindow::setDarkTheme() { qApp->setStyle(QStyleFactory::create("Fusion")); QPalette p = qApp->palette(); p.setColor(QPalette::Window, QColor(53, 53, 53)); p.setColor(QPalette::Button, QColor(73, 73, 73)); p.setColor(QPalette::Highlight, QColor(110, 110, 110)); p.setColor(QPalette::Text, QColor(255, 255, 255)); p.setColor(QPalette::ButtonText, QColor(255, 255, 255)); p.setColor(QPalette::WindowText, QColor(255, 255, 255)); QColor linkColor(100, 100, 100); linkColor = linkColor.lighter(); p.setColor(QPalette::Link, linkColor); p.setColor(QPalette::LinkVisited, linkColor); p.setColor(QPalette::Disabled, QPalette::Button, QColor(53, 53, 53)); p.setColor(QPalette::Disabled, QPalette::Window, QColor(53, 53, 53)); p.setColor(QPalette::Disabled, QPalette::Text, QColor(110, 110, 110)); p.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(110, 110, 110)); p.setColor(QPalette::Disabled, QPalette::WindowText, QColor(110, 110, 110)); qApp->setPalette(p); } void ProgressInfoWindow::onCancelClicked(bool) { ui->pbCancel->setEnabled(false); _processor->cancel(); } void ProgressInfoWindow::onProgress(float progress, int duration, unsigned long memory) { if (!_isShown) { return; } if (progress >= 0) { ui->progressBar->setInvertedAppearance(false); ui->progressBar->setTextVisible(true); ui->progressBar->setValue((int)progress); } else { ui->progressBar->setTextVisible(false); int value = ui->progressBar->value(); value += 20; if (value > 100) { ui->progressBar->setValue(value - 100); ui->progressBar->setInvertedAppearance(!ui->progressBar->invertedAppearance()); } else { ui->progressBar->setValue(value); } } QString durationStr; if (duration >= 60000) { durationStr = QTime::fromMSecsSinceStartOfDay(duration).toString("HH:mm:ss"); } else { durationStr = QString(tr("%1 seconds")).arg(duration / 1000); } QString memoryStr; unsigned long kiB = memory / 1024; if (kiB >= 1024) { memoryStr = QString("%1 MiB").arg(kiB / 1024); } else { memoryStr = QString("%1 KiB").arg(kiB); } if (kiB) { ui->info->setText(QString(tr("[Processing %1 | %2]")).arg(durationStr).arg(memoryStr)); } else { ui->info->setText(QString(tr("[Processing %1]")).arg(durationStr)); } } void ProgressInfoWindow::onInfo(QString text) { ui->info->setText(text); } void ProgressInfoWindow::onProcessingFinished(const QString & errorMessage) { if (!errorMessage.isEmpty()) { QMessageBox::critical(this, "Error", errorMessage, QMessageBox::Close); } close(); } } // namespace GmicQt ================================================ FILE: src/Widgets/ProgressInfoWindow.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ProgressInfoWindow.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_PROGRESSINFOWINDOW_H #define GMIC_QT_PROGRESSINFOWINDOW_H #include #include #include #include "GmicQt.h" namespace Ui { class ProgressInfoWindow; } namespace gmic_library { template struct gmic_list; } namespace GmicQt { class FilterThread; class HeadlessProcessor; class ProgressInfoWindow : public QMainWindow { Q_OBJECT public: explicit ProgressInfoWindow(HeadlessProcessor * processor); ~ProgressInfoWindow() override; protected: void showEvent(QShowEvent *) override; void closeEvent(QCloseEvent *) override; void setDarkTheme(); public slots: void onCancelClicked(bool); void onProgress(float progress, int duration, unsigned long memory); void onInfo(QString text); void onProcessingFinished(const QString & errorMessage); private: Ui::ProgressInfoWindow * ui; bool _isShown; HeadlessProcessor * _processor; }; } // namespace GmicQt #endif // GMIC_QT_PROGRESSINFOWINDOW_H ================================================ FILE: src/Widgets/SearchFieldWidget.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file SearchFieldWidget.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/SearchFieldWidget.h" #include #include #include #include #include #include #include #include #include #include "Common.h" #include "IconLoader.h" #include "Settings.h" #include "ui_SearchFieldWidget.h" namespace GmicQt { SearchFieldWidget::SearchFieldWidget(QWidget * parent) : QWidget(parent), ui(new Ui::SearchFieldWidget) { ui->setupUi(this); _clearIcon = IconLoader::load("edit-clear"); _findIcon = IconLoader::load("edit-find"); _empty = true; #if QT_VERSION_GTE(5, 2, 0) auto hbox = dynamic_cast(layout()); if (hbox) { hbox->setContentsMargins(0, 0, 0, 0); hbox->setSpacing(0); hbox->addWidget(_lineEdit = new QLineEdit(this)); _action = _lineEdit->addAction(IconLoader::load("edit-find"), QLineEdit::TrailingPosition); connect(_action, &QAction::triggered, _lineEdit, &QLineEdit::clear); } #else QFrame * frame = new QFrame(this); layout()->addWidget(frame); frame->setFrameShape(QFrame::StyledPanel); frame->setStyleSheet(QString("background:%1").arg(frame->palette().base().color().name())); QHBoxLayout * hbox = new QHBoxLayout; frame->setLayout(hbox); hbox->setMargin(2); _lineEdit = new QLineEdit(frame); hbox->addWidget(_lineEdit); _button = new QToolButton(frame); hbox->addWidget(_button); _button->setStyleSheet("border:none"); _lineEdit->setFrame(false); _button->setIcon(_findIcon); connect(_button, &QToolButton::clicked, _lineEdit, &QLineEdit::clear); #endif connect(_lineEdit, &QLineEdit::textChanged, this, &SearchFieldWidget::textChanged); connect(_lineEdit, &QLineEdit::textChanged, this, &SearchFieldWidget::onTextChanged); _lineEdit->setPlaceholderText(tr("Search")); _lineEdit->setToolTip(tr("Search in filters list (%1)").arg(QKeySequence(QKeySequence::Find).toString())); setFocusProxy(_lineEdit); #if QT_VERSION_GTE(5, 12, 0) if (Settings::darkThemeEnabled()) { QPalette palette = _lineEdit->palette(); palette.setColor(QPalette::PlaceholderText, Qt::gray); _lineEdit->setPalette(palette); } #endif auto validator = new QRegularExpressionValidator(QRegularExpression("[^/].*"), this); _lineEdit->setValidator(validator); } SearchFieldWidget::~SearchFieldWidget() { delete ui; } QString SearchFieldWidget::text() const { return _lineEdit->text(); } void SearchFieldWidget::onTextChanged(const QString & str) { #if QT_VERSION_GTE(5, 2, 0) if (str.isEmpty()) { _empty = true; _action->setIcon(_findIcon); } else { if (_empty) { _action->setIcon(_clearIcon); } _empty = false; } #else if (str.isEmpty()) { _empty = true; _button->setIcon(_findIcon); } else { if (_empty) { _button->setIcon(_clearIcon); _empty = false; } } #endif } void SearchFieldWidget::clear() { _lineEdit->clear(); } } // namespace GmicQt ================================================ FILE: src/Widgets/SearchFieldWidget.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file SearchFieldWidget.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_SEARCHFIELDWIDGET_H #define GMIC_QT_SEARCHFIELDWIDGET_H #include #include #include "Common.h" class QAction; class QLineEdit; class QToolButton; namespace Ui { class SearchFieldWidget; } namespace GmicQt { class SearchFieldWidget : public QWidget { Q_OBJECT public: explicit SearchFieldWidget(QWidget * parent); ~SearchFieldWidget() override; QString text() const; public slots: void clear(); signals: void textChanged(QString); private slots: void onTextChanged(const QString &); private: Ui::SearchFieldWidget * ui; bool _empty; QIcon _clearIcon; QIcon _findIcon; QLineEdit * _lineEdit; #if QT_VERSION_GTE(5, 2, 0) QAction * _action; #else QToolButton * _button; #endif }; } // namespace GmicQt #endif // GMIC_QT_SEARCHFIELDWIDGET_H ================================================ FILE: src/Widgets/VisibleTagSelector.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file VisibleTagSelector.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/VisibleTagSelector.h" #include #include #include #include "Common.h" #include "FilterSelector/FilterTagMap.h" #include "Tags.h" namespace GmicQt { VisibleTagSelector::VisibleTagSelector(QWidget * parent) : QMenu(parent) { _toolButton = nullptr; } void VisibleTagSelector::setToolButton(QToolButton * button) { _toolButton = button; connect(button, &QToolButton::clicked, [this]() { updateColors(); exec(_toolButton->mapToGlobal(_toolButton->rect().center())); emit visibleColorsChanged((unsigned int)_selectedColors.mask()); }); } void VisibleTagSelector::updateColors() { TagColorSet used = FiltersTagMap::usedColors(); clear(); QAction * action = addAction(tr("Show All Filters")); action->setIcon(TagAssets::menuIcon(TagColor::None, _selectedColors.isEmpty() ? TagAssets::IconMark::Disk : TagAssets::IconMark::None)); connect(action, &QAction::triggered, [this]() { _selectedColors.clear(); }); for (TagColor color : used) { QAction * action = addAction(tr("Show %1 Tags").arg(TagAssets::colorName(color))); action->setIcon(TagAssets::menuIcon(color, (_selectedColors.contains(color)) ? TagAssets::IconMark::Check : TagAssets::IconMark::None)); connect(action, &QAction::triggered, [this, color](bool) { // TODO : Check _selectedColors.toggle(color); }); } _selectedColors = _selectedColors & used; if (_toolButton) { _toolButton->setEnabled(!used.isEmpty()); } } TagColorSet VisibleTagSelector::selectedColors() const { return _selectedColors; } VisibleTagSelector::~VisibleTagSelector() {} } // namespace GmicQt ================================================ FILE: src/Widgets/VisibleTagSelector.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file VisibleTagSelector.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_VISIBLETAGSELECTOR_H #define GMIC_QT_VISIBLETAGSELECTOR_H #include #include #include "Tags.h" class QToolButton; namespace GmicQt { class VisibleTagSelector : public QMenu { Q_OBJECT public: explicit VisibleTagSelector(QWidget * parent); void setToolButton(QToolButton * button); TagColorSet selectedColors() const; ~VisibleTagSelector() override; public slots: void updateColors(); signals: void visibleColorsChanged(unsigned int); private: QToolButton * _toolButton; QVector _colors; TagColorSet _selectedColors; }; } // namespace GmicQt #endif // GMIC_QT_VISIBLETAGSELECTOR_H ================================================ FILE: src/Widgets/ZoomLevelSelector.cpp ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ZoomLevelSelector.cpp * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #include "Widgets/ZoomLevelSelector.h" #include #include #include #include #include "Common.h" #include "Globals.h" #include "IconLoader.h" #include "PreviewWidget.h" #include "ui_zoomlevelselector.h" namespace GmicQt { ZoomLevelSelector::ZoomLevelSelector(QWidget * parent) : QWidget(parent), ui(new Ui::ZoomLevelSelector) { ui->setupUi(this); _previewWidget = nullptr; ui->comboBox->setEditable(true); ui->comboBox->setInsertPolicy(QComboBox::NoInsert); ui->comboBox->setValidator(new ZoomLevelValidator(ui->comboBox)); ui->comboBox->setCompleter(nullptr); _notificationsEnabled = true; ui->labelWarning->setPixmap(QPixmap(":/images/no_warning.png")); ui->labelWarning->setToolTip(QString()); ui->tbZoomIn->setToolTip(tr("Zoom in")); ui->tbZoomOut->setToolTip(tr("Zoom out")); ui->tbZoomReset->setToolTip(tr("Reset zoom")); ui->tbZoomIn->setIcon(IconLoader::load("zoom-in")); ui->tbZoomOut->setIcon(IconLoader::load("zoom-out")); ui->tbZoomReset->setIcon(IconLoader::load("view-refresh")); connect(ui->comboBox->lineEdit(), &QLineEdit::editingFinished, this, &ZoomLevelSelector::onComboBoxEditingFinished); connect(ui->comboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &ZoomLevelSelector::onComboIndexChanged); connect(ui->tbZoomIn, &QToolButton::clicked, this, &ZoomLevelSelector::zoomIn); connect(ui->tbZoomOut, &QToolButton::clicked, this, &ZoomLevelSelector::zoomOut); connect(ui->tbZoomReset, &QToolButton::clicked, this, &ZoomLevelSelector::zoomReset); setZoomConstraint(ZoomConstraint::Any); } ZoomLevelSelector::~ZoomLevelSelector() { delete ui; } void ZoomLevelSelector::setZoomConstraint(const ZoomConstraint & constraint) { _zoomConstraint = constraint; _notificationsEnabled = false; setEnabled(_zoomConstraint != ZoomConstraint::Fixed); double currentValue = currentZoomValue(); QStringList values = {"1000 %", "800 %", "400 %", "200 %", "150 %", "100 %", "66.7 %", "50 %", "25 %", "12.5 %"}; if (_zoomConstraint == ZoomConstraint::OneOrMore) { values.pop_back(); values.pop_back(); values.pop_back(); values.pop_back(); if (currentValue <= 1.0) { currentValue = 1.0; } } QString maxStr = values.front(); maxStr.remove(" %"); int max = maxStr.toInt(); double previewMax = PREVIEW_MAX_ZOOM_FACTOR; while (max < previewMax * 100) { max += 1000; values.push_front(QString::number(max) + " %"); } ui->comboBox->clear(); ui->comboBox->addItems(values); display(currentValue); _notificationsEnabled = true; } void ZoomLevelSelector::setPreviewWidget(const PreviewWidget * widget) { _previewWidget = widget; } void ZoomLevelSelector::display(const double zoom) { bool decimals = static_cast(zoom * 10000) % 100; QString text; if (decimals && zoom < 1) { text = QString("%L1 %").arg(zoom * 100.0, 0, 'f', 2); } else { text = QString("%1 %").arg(static_cast(zoom * 100)); } // Get closest proposed value in list double distanceMin = std::numeric_limits::max(); int iMin = 0; int count = ui->comboBox->count(); for (int i = 0; i < count; ++i) { QString str = ui->comboBox->itemText(i); str.chop(2); double value = str.toDouble(); double distance = std::fabs(value / 100.0 - zoom); if (distance < distanceMin) { distanceMin = distance; iMin = i; } } ui->tbZoomOut->setEnabled((!_previewWidget || !_previewWidget->isAtFullZoom()) && (((_zoomConstraint == ZoomConstraint::OneOrMore) && (zoom > 1.0)) || (_zoomConstraint == ZoomConstraint::Any))); if (_zoomConstraint == ZoomConstraint::Any || _zoomConstraint == ZoomConstraint::OneOrMore) { ui->tbZoomIn->setEnabled(zoom != PREVIEW_MAX_ZOOM_FACTOR); } _notificationsEnabled = false; ui->comboBox->setCurrentIndex(iMin); ui->comboBox->setEditText(text); _currentText = text; _notificationsEnabled = true; } void ZoomLevelSelector::showWarning(bool on) { if (on) { ui->labelWarning->setPixmap(QPixmap(":/images/warning.png")); ui->labelWarning->setToolTip(tr("Warning: Preview may be inaccurate (zoom factor has been modified)")); } else { ui->labelWarning->setPixmap(QPixmap(":/images/no_warning.png")); ui->labelWarning->setToolTip(QString()); } } void ZoomLevelSelector::onComboBoxEditingFinished() { QString text = ui->comboBox->lineEdit()->text(); if (text == _currentText) { // This is required because opening the combobox sends // an editingFinished() signal ;-( return; } if (!text.endsWith(" %")) { text.remove(QRegularExpression(" ?%?$")); text += " %"; } QString digits = text; digits.remove(" %"); double value = digits.toDouble(); if ((_zoomConstraint == ZoomConstraint::OneOrMore) && (value < 100.0)) { ui->comboBox->lineEdit()->setText(_currentText = "100 %"); } else { ui->comboBox->lineEdit()->setText(_currentText = text); } if (_notificationsEnabled) { emit valueChanged(currentZoomValue()); } } void ZoomLevelSelector::onComboIndexChanged(int) { _currentText = ui->comboBox->currentText(); if (_notificationsEnabled) { emit valueChanged(currentZoomValue()); } } double ZoomLevelSelector::currentZoomValue() { QString text = ui->comboBox->currentText(); text.remove(" %"); return text.toDouble() / 100.0; } ZoomLevelValidator::ZoomLevelValidator(QObject * parent) : QValidator(parent) { _doubleValidator = new QDoubleValidator(1e-10, PREVIEW_MAX_ZOOM_FACTOR * 100.0, 3, parent); _doubleValidator->setNotation(QDoubleValidator::StandardNotation); } QValidator::State ZoomLevelValidator::validate(QString & input, int & pos) const { QString str = input; str.remove(QRegularExpression(" ?%?$")); return _doubleValidator->validate(str, pos); } } // namespace GmicQt ================================================ FILE: src/Widgets/ZoomLevelSelector.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ZoomLevelSelector.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_ZOOMLEVELSELECTOR_H #define GMIC_QT_ZOOMLEVELSELECTOR_H #include #include #include #include "ZoomConstraint.h" namespace Ui { class ZoomLevelSelector; } namespace GmicQt { class PreviewWidget; class ZoomLevelSelector : public QWidget { Q_OBJECT public: explicit ZoomLevelSelector(QWidget * parent); ~ZoomLevelSelector(); void setZoomConstraint(const ZoomConstraint & constraint); void setPreviewWidget(const PreviewWidget *); public slots: void display(const double zoom); void showWarning(bool on); private slots: void onComboBoxEditingFinished(); void onComboIndexChanged(int); signals: void valueChanged(double); void zoomIn(); void zoomOut(); void zoomReset(); private: Ui::ZoomLevelSelector * ui; bool _notificationsEnabled; double currentZoomValue(); QString _currentText; ZoomConstraint _zoomConstraint; const PreviewWidget * _previewWidget; }; class ZoomLevelValidator : public QValidator { public: ZoomLevelValidator(QObject * parent); QValidator::State validate(QString & input, int & pos) const override; private: QDoubleValidator * _doubleValidator; }; } // namespace GmicQt #endif // GMIC_QT_ZOOMLEVELSELECTOR_H ================================================ FILE: src/ZoomConstraint.h ================================================ /** -*- mode: c++ ; c-basic-offset: 2 -*- * * @file ZoomConstraint.h * * Copyright 2017 Sebastien Fourey * * This file is part of G'MIC-Qt, a generic plug-in for raster graphics * editors, offering hundreds of filters thanks to the underlying G'MIC * image processing framework. * * gmic_qt 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. * * gmic_qt 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 gmic_qt. If not, see . * */ #ifndef GMIC_QT_ZOOMCONSTRAINT_H #define GMIC_QT_ZOOMCONSTRAINT_H namespace GmicQt { struct ZoomConstraint { enum Constraint { Fixed, Any, OneOrMore }; ZoomConstraint() : _value(Any) {} ZoomConstraint(Constraint value) : _value(value) {} ZoomConstraint(const ZoomConstraint & other) : _value(other._value) {} ZoomConstraint & operator=(const ZoomConstraint & other) { _value = other._value; return *this; } bool operator==(const ZoomConstraint & other) const { return _value == other._value; } bool operator!=(const ZoomConstraint & other) const { return _value != other._value; } private: Constraint _value; }; } // namespace GmicQt #endif // GMIC_QT_ZOOMCONSTRAINT_H ================================================ FILE: standalone.qrc ================================================ resources/gmicky.png ================================================ FILE: translations/authors/cs.txt ================================================ ================================================ FILE: translations/authors/de.txt ================================================ ================================================ FILE: translations/authors/es.txt ================================================ ================================================ FILE: translations/authors/fr.txt ================================================ ================================================ FILE: translations/authors/id.txt ================================================ ================================================ FILE: translations/authors/it.txt ================================================ ================================================ FILE: translations/authors/ja.txt ================================================ ================================================ FILE: translations/authors/nl.txt ================================================ ================================================ FILE: translations/authors/pl.txt ================================================ ================================================ FILE: translations/authors/pt.txt ================================================ ================================================ FILE: translations/authors/ru.txt ================================================ ================================================ FILE: translations/authors/sv.txt ================================================ ================================================ FILE: translations/authors/uk.txt ================================================ ================================================ FILE: translations/authors/zh.txt ================================================ ================================================ FILE: translations/authors/zh_tw.txt ================================================ ================================================ FILE: translations/cs.ts ================================================ DialogSettings Dialog Dialog Internet updates Online aktualizace Update now Aktualizovat nyní Layout Rozvržení Interface Preview on the &left Náhled &vlevo Pre&view on right side Náhled &vpravo Theme Téma &Default &Výchozí Dar&k &Tmavé <i>(Restart needed)</I> <i>(vyžaduje restart)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Vyžaduje restart)</i> Filter sources Other Output messages Výstupní zprávy &Use native color dialog &Použít nativní dialog barev Preview Náhled Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Vyberte barvu GmicQt::DialogSettings Settings Never Nikdy Daily Denně Weekly Týdně Every 2 weeks Každé 2 týdny Monthly Měsíčně At launch (debug) Při startu (ladění) Output messages Výstupní zprávy Quiet (default) Tichý (výchozí) Verbose (console) Upovídaný (konzole) Verbose (log file) Upovídaný (soubor záznamů) Very verbose (console) Velmi upovídaný (konzole) Very verbose (log file) Velmi upovídaný (soubor záznamů) Debug (console) Ladění (konzole) Debug (log file) Ladění (soubor záznamů) Check to use Native/OS color dialog, uncheck to use Qt's Zaškrtněte pro použití nativního/OS dialogu barev, odškrtněte pro použití Qt dialogu Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Vyberte soubor GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Vyberte filtr</i> <i>No parameters</i> <i>Žádné parametry</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Odstranit oblíbený Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Vyberte složku GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Vstupní vrstvy None Žádné Active (default) Aktivní (výchozí) All Vše Active and below Aktivní a níže Active and above Aktivní a výše All visible Všechny viditelné All invisible Všechny neviditelné Output mode Režim výstupu In place (default) V místě (výchozí) New layer(s) Nová vrstva(y) New active layer(s) Nová aktivní vrstva(y) New image Nový obrázek Input / Output Vstup / Výstup Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Přidat oblíbený Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Rename fave Přejmenovat oblíbený Remove fave Odstranit oblíbený Expand/Collapse all Rozbalit/Sbalit vše G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Aktualizovat filtry Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Aktualizace dokončena Filter definitions have been updated. Definice filtrů byly aktualizovány. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> Aktualizace nemohla být provedena<br/>kvůli následujícím chybám:<br/> Update error Chyba aktualizace Error Chyba Waiting for cancelled jobs... Import faves Importovat oblíbené Do you want to import faves from file below?<br/>%1 Chcete importovat oblíbené ze souboru níže?<br/>%1 Don't ask again Znovu už se neptat Confirmation Potvrzení A gmic command is running.<br>Do you really want to close the plugin? Gmic příkaz stále běží.<br>Opravdu chcete zavřít plugin? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Zrušit [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Zpracování %1 | %2] [Processing %1] [Zpracování %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 sekund [Processing %1 | %2] [Zpracování %1 | %2] [Processing %1] [Zpracování %1] GmicQt::SearchFieldWidget Search Hledat Search in filters list (%1) Hledat v seznamu filtrů (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Vyberte soubor GmicQt::Updater Error downloading %1 (empty file?) Chyba stahování %1 (prázdný soubor?) Could not read/decompress %1 Nemohu přečíst/dekomprimovat %1 Error writing file %1 Chyba zapisování souboru %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Stahování zrušeno (časový limit překročen): %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Dialog Cancel Storno InOutPanel Input / Output Vstup / Výstup ... Input layers Vstupní vrstvy Output mode Režim výstupu JpegQualityDialog Dialog Dialog JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Storno &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Vyžaduje restart)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Stáhnout definice filtrů ze vzdálených zdrojů</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Náhled &Close &Cancel &Storno &Fullscreen &Celá obrazovka &Apply &Použít &OK &Ok MultilineTextParameterWidget Form GMIC Update Aktualizovat ProgressInfoWidget Form GMIC Abort Zrušit TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Storno QObject Select an image to open... Vyberte obrázek k otevření... Error Chyba Could not open file. Default image Visible Available filters (%1) Dostupných filtrů (%1) %1 Tag None Žádné Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Chyba Could not write image file %1 ================================================ FILE: translations/de.ts ================================================ DialogSettings Dialog not sure about the use Einstellungen Internet updates Aktualisierungen über Internet Update now Jetzt aktualisieren Layout Anordnung Interface Preview on the &left Vorschau auf &linker Seite Pre&view on right side Vorschau auf &rechter Seite Theme Thema &Default &Standard Dar&k &Dunkel <i>(Restart needed)</I> <i>(Neustart erforderlich)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Neustart erforderlich)</i> Filter sources Other Output messages Ausgabe der Meldungen &Use native color dialog &System-Farbwähler verwenden Preview Vorschau Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Farb-Auswahl GmicQt::DialogSettings Settings Never Niemals Daily Täglich Weekly Wöchentlich Every 2 weeks Alle zwei Wochen Monthly Monatlich At launch (debug) Beim Starten (Debug) Output messages Ausgabe der Meldungen Quiet (default) Keine Ausgabe (Standard) Verbose (console) Ausführlich (Konsole) Verbose (log file) Ausführlich (Log-Datei) Very verbose (console) Sehr ausführlich (Konsole) Very verbose (log file) Sehr ausführlich (Log-Datei) Debug (console) Debuggen (Konsole) Debug (log file) Debuggen (Log-Datei) Check to use Native/OS color dialog, uncheck to use Qt's Auswählen, um System-Farbwähler zu nutzen, aus für Qt-Farbwähler Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Datei auswählen GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Filter auswählen</i> <i>No parameters</i> <i>Keine Parameter anzugeben</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Kein Favorit mehr Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Ordner wählen GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Ursprungs-Ebenen None Keine Active (default) Aktive (Standard) All Alle Active and below Aktive und darunter liegende Active and above Aktive und darüber liegende All visible Alle sichtbaren All invisible Alle nicht sichtbaren Output mode Ziel In place (default) Ebene ersetzen (Standard) New layer(s) Neue Ebene(n) New active layer(s) Neue aktive Ebene(n) New image Neues Bild Input / Output Quellen und Ziel Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Als Favorit merken Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard G'MIC-Befehl in die Zwischenablage kopieren Rename fave Favorit umbenennen Remove fave Kein Favorit mehr Expand/Collapse all Alles aufklappen/einklappen G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandie Université (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Filter aktualisieren Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Aktualisierung ist durchgeführt Filter definitions have been updated. Die Filter-Definitionen wurden aktualisiert. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> Wegen der folgenden Fehler konnte<br/>die Aktualisierung nicht durchgeführt werden:<br/> Update error Fehler bei der Aktualisierung Error Fehler Waiting for cancelled jobs... Import faves Favoriten importieren Do you want to import faves from file below?<br/>%1 Möchten Sie Favoriten aus dieser Datei importieren?<br/>%1 Don't ask again Nicht mehr fragen Confirmation Bestätigung A gmic command is running.<br>Do you really want to close the plugin? Ein GMIC-Kommando ist aktiv.<br>Wollen Sie das Plugin wirklich schließen? GmicQt::MultilineTextParameterWidget Ctrl+Return Strg+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Abbrechen [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Processing %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 Sekunden [Processing %1 | %2] [Processing %1] GmicQt::SearchFieldWidget Search Suchen Search in filters list (%1) In Filter-Liste suchen (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Datei auswählen GmicQt::Updater Error downloading %1 (empty file?) Fehler beim Laden von %1 (Leere Datei?) Could not read/decompress %1 %1 ist nicht lesbar oder kann nicht entpackt werden Error writing file %1 Fehler beim Schreiben der Datei %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Zeitüberschreitung beim Herunterladen : %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog guessed from french translation Fortschritt Cancel Abbrechen InOutPanel Input / Output Quellen und Ziel ... ... Input layers Ursprungs-Ebenen Output mode Ziel JpegQualityDialog Dialog JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Abbruch &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Neustart erforderlich)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Filter-Definitionen von externen Quellen laden</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel why empty? TextLabel ... ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Vorschau &Close &Cancel &Abbruch &Fullscreen &Vollbild &Apply &Anwenden &OK &Ok MultilineTextParameterWidget Form GMIC Update Aktualisieren ProgressInfoWidget Form GMIC Abort Abbrechen TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Abbrechen QObject Select an image to open... Bild zum Laden auswählen... Error Fehler Could not open file. Default image Visible Available filters (%1) Verfügbare Filter (%1) %1 Tag None Keine Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Fehler Could not write image file %1 ================================================ FILE: translations/es.ts ================================================ DialogSettings Dialog Diálogo Internet updates Actualizaciones de internet Update now Actualizar ahora Layout Disposición Interface Preview on the &left Previsualizar a la &izquierda Pre&view on right side Previsualizar a la &derecha Theme Tema &Default &Valor predeterminado Dar&k &Oscuro <i>(Restart needed)</I> <i>(Reinicio necesario)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Reinicio necesario)</i> Filter sources Other Output messages Mensages de salida &Use native color dialog &Usar color nativo en los diálogos Preview Previsualización Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Aceptar FiltersView Form GMIC GmicQt::ColorParameter Select color Seleccionar color GmicQt::DialogSettings Settings Never Nunca Daily Diariamente Weekly Semanalmente Every 2 weeks Cada 2 semanas Monthly Mensualmente At launch (debug) Al iniciar (depurar) Output messages Mensages de salida Quiet (default) Silencioso (por defecto) Verbose (console) Modo verborraico (consola) Verbose (log file) Modo verborraico (archivo de registro) Very verbose (console) Modo muy verborraico (consola) Very verbose (log file) Modo muy verborraico (archivo de registro) Debug (console) Depurar errores (consola) Debug (log file) Depurar errores (archivo de registro) Check to use Native/OS color dialog, uncheck to use Qt's Seleccionar para usar el diálogo de color nativo/SO, deseleccionar para usar el de Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Seleccionar un archivo GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Seleccionar un filtro</i> <i>No parameters</i> <i>Sin parámetros</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Eliminar un favorito Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Seleccionar una carpeta GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Capas de entrada None Ninguna Active (default) Activa (por defecto) All Todas Active and below Activa e inferiores Active and above Activa y superiores All visible Todas las visibles All invisible Todas las invisibles Output mode Modo de salida In place (default) In situ (por defecto) New layer(s) Nueva(s) capa(s) New active layer(s) Nueva(s) capa(s) activa(s) New image Nueva imagen Input / Output Entrada / Salida Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Adicionar un favorito Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Copiar el comando G'MIC al portapapeles Rename fave Renombrar un favorito Remove fave Eliminar un favorito Expand/Collapse all Expandir/Colapsar todos G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Universidad de Normandía (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Actualizar filtros Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Actualización completa Filter definitions have been updated. Las definiciones de filtros han sido actualizadas. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> La actualización no ha sido posible<br> debido a los siguientes errores :<br/> Update error Error en la actualización Error Error Waiting for cancelled jobs... Import faves Importar favoritos Do you want to import faves from file below?<br/>%1 ¿Quieres importar favoritos del archivo de abajo?<br/>%1 Don't ask again No volver a preguntar Confirmation Confirmar A gmic command is running.<br>Do you really want to close the plugin? Se está ejecutando un comando de gmic.<br>¿Seguro que quieres cerrar el plugin? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Abortar [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Procesando %1 | %2] [Processing %1] [Procesando %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 segundos [Processing %1 | %2] [Procesando %1 | %2] [Processing %1] [Procesando %1] GmicQt::SearchFieldWidget Search Buscar Search in filters list (%1) Buscar en la lista de filtros (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Seleccionar un archivo GmicQt::Updater Error downloading %1 (empty file?) Error al descargar %1 (archivo vacío?) Could not read/decompress %1 Impossible de leer/descomprimir %1 Error writing file %1 Error al escribir el archivo %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Descarga anulada (tiempo límite) : %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Diálogo Cancel Cancelar InOutPanel Input / Output Entrada / Salida ... ... Input layers Capas de entrada Output mode Modo de salida JpegQualityDialog Dialog Diálogo JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Cancelar &Ok &Aceptar LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Reinicio necesario)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Descargar las definiciones del filtro de fuentes remotas</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel Etiqueta de Texto ... ... MainWindow Ventana Principal <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Previsualización &Close &Cancel &Cancelar &Fullscreen &Pantalla completa &Apply &Aplicar &OK &Aceptar MultilineTextParameterWidget Form GMIC Update Actualizar ProgressInfoWidget Form GMIC Abort Abortar TextLabel Etiqueta de texto ProgressInfoWindow MainWindow Ventana Principal TextLabel Etiqueta de Texto Cancel Cancelar QObject Select an image to open... Seleccionar una imagen para abrir... Error Error Could not open file. Default image Visible Available filters (%1) Filtros disponibles (%1) %1 Tag None Ninguna Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Marco SourcesWidget Form GMIC Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Error Could not write image file %1 ================================================ FILE: translations/filters/HOWTO.md ================================================ # G'MIC-Qt: Contribute to filters translation We describe here the steps you should follow if you want to help with the *Italian* translation of the filters (names, parameters, etc.). ## Step 1: Edit the `it.csv` file * The `.csv` files are located in the [translations/filters](https://github.com/c-koi/gmic-qt/tree/master/translations/filters) folder. * They contain only automatic translations for now (except for French and Chinese). Therefore they really need some editing! * Editing can be done using a simple text editor. * The CSV file contains up to 3 columns : ```txt Original text , Translation [, Filter name] ``` Filter name may be used to disambiguate the translation by providing a context. ## Step 2: Enable the language in `translations/filters/Makefile` * Edit the `Makefile` to add the `.qm` file to the list. ```txt QM = fr.qm zh.qm it.qm ``` * In the `translations/filters` folder, run make: ```shell $ make ``` * Check that this indeed produced the file `it.qm`. ## Step 3: Test it! * If not already there, add your `it.qm` file in the *work in progress* set of translations. For this, add a line in the file `wip_translations.qrc` in the root folder. ```xml translations/filters/fr.qm translations/filters/zh.qm translations/filters/it.qm ``` * Caution : you need to check "Translate filters (WIP)" in the settings dialog. As a WIP, it is disabled by default. ## Step 4: Submit a Pull Request * Your PR should only include the `it.csv`, the `Makefile`, and the updated `wip_translations.qrc`. ================================================ FILE: translations/filters/csv2ts.sh ================================================ #!/usr/bin/env bash function usage() { cat <&2 echo "$message" exit 1 } function requires() { type "$1" >& /dev/null || die "Command '$1' not found." } requires sed input="$1" [[ -z "$input" ]] && usage [[ ! -e "$input" ]] && die "File not found: $input" [[ ! $input =~ .*\.csv$ ]] && die "Not a csv file: $input" if [[ $input =~ gmic_qt.*\.csv ]]; then language=${input%%.csv} language=${language##*_} else language=${input%%.csv} language=${language%%_*} fi cat < $output FilterTextTranslator EOF # @param name # @param text function xml_tag() { local name="$1" local text="$2" text=${text//&/\&} text=${text//\"/\"} text=${text//\'/\'} text=${text///\>} text=${text# } echo " <${name}>${text}" } # @param source # @param translation # @param comment (optionnal) function message() { local source="$1" local translation="$2" local comment="$3" echo -e "\n " xml_tag source "$source" [[ -n "$comment" ]] && xml_tag comment "$comment" xml_tag translation "$translation" echo " " } while IFS=$'\t' read -r -a columns ; do count=${#columns[@]} if (( count > 2 )); then i=2 while (( i < count )); do message "${columns[0]}" "${columns[1]}" "${columns[$i]}" >> $output i=$((i+1)) done elif (( count == 2 )); then message "${columns[0]}" "${columns[1]}" >> $output fi done < <(sed -e 's/ , /\t/g' "$input") cat <> $output EOF ================================================ FILE: translations/filters/gmic_qt_de.csv ================================================ Arrays & Tiles , Arrays und Kacheln Artistic , Künstlerisch Black & White , Schwarz-Weiß Colors , Farben Contours , Konturen Deformations , Verformungen Degradations , Degradierungen Details , Einzelheiten Testing , Prüfung Frames , Rahmen Frequencies , Frequenzen Layers , Schichten Lights & Shadows , Lichter & Schatten Patterns , Muster Rendering , Rendering Repair , Reparatur Sequences , Sequenzen Silhouettes , Silhouetten Icons , Ikonen Misc , Sonstiges Nature , Natur Others , Andere Stereoscopic 3D , Stereoskopisches 3D ♥ Support Us ! ♥ , ♥ Unterstützen Sie uns! ♥ *Colors Doping , *Farben Doping *Colors Doping* , *Farben Doping* *Dark Edges* , *Dunkle Ränder* *Dark Screen* , *Dunkeler Bildschirm* *Graphix Colors , *Graphix-Farben *Vivid Edges* , *Leidende Kanten* *Vivid Screen* , *Lebendiger Bildschirm* +180 Deg. , +180 Grad. - NO - , - NEIN - -1. Value Action , -1. Wert Aktion -2. Overall Channel(s) , -2. Kanal(e) insgesamt -3. Normalisation Channel(s) , -3. Normalisierung Kanal(e) -4. Normalise , -4. normalisieren. 0 Deg. , 0 Grad. 0. Recompute , 0. erneut berechnen 1 Levels , 1 Ebenen 1. Plasma Texture [Discards Input Image] , 1. Plasma-Textur [Verwirft Eingabebild] 10. Quadtree Max Precision , 10. Quadtree Max Präzision 10th , 10. 10th Color , 10. Farbe 11. Quadtree Min Homogeneity , 11. Quadtree Min Homogenität 11th , 11. 12 Colors , 12 Farben 12 Grays , 12 Grautöne 12. Quadtree Max Homogeneity , 12. Quadtree Max Homogenität 125 Keypoints , 125 Schlüsselpunkte 12th , 12. 13. Noise Type , 13. Art der Geräusche 13th , 13. 14. Minimum Noise , 14. Minimaler Lärm 14th , 14. 15. Maximum Noise , 15. Maximaler Lärm 15th , 15. 16 Colors , 16 Farben 16 Grays , 16 Grautöne 16. Noise Channel(s) , 16. Lärm-Kanal(e) 16th , 16. 17. Warp Iterations , 17. Warp-Iterationen 18. Warp Intensity , 18. Warp-Intensität 180 Deg. , 180 Grad. 19. Warp Offset , 19. Kettversatz 1st , 1. 1st Additional Palette (.Gpl) , 1. zusätzliche Palette (.Gpl) 1st Color , 1. Farbe 1st Parameter , 1. Parameter 1st Text , 1. Text 1st Tone , 1. Ton 1st Variance , 1. Abweichung 1st X-Coord , 1. X-Kordel 1st Y-Coord , 1. Y-Schnur 2 Colors , 2 Farben 2 Grays , 2 Grautöne 2 Noise , 2 Lärm 2-Strip Process , 2-Streifen-Verfahren 2. Plasma Scale , 2. Plasma-Skala 20. Scale to Width , 20. Auf Breite skalieren 21. Scale to Height , 21. Auf Höhe skalieren 216 Keypoints , 216 Schlüsselpunkte 22. Correlated Channels , 22. Korrelierte Kanäle 22.5 Deg. , 22,5 Grad. 23. Boundary , 23. Grenze 24. Warp Channel(s) , 24. Warp-Kanal(e) 25. Random Negation , 25. Zufällige Verneinung 26. Random Negation Channel(s) , 26. Zufällige(r) Negationskanal(e) 27 Keypoints , 27 Schlüsselpunkte 27. Gamma Offset , 27. Gamma-Versatz 270 Deg. , 270 Grad. 28. Hue Offset , 28. Farbton-Versatz 29. Normalise , 29. normalisieren. 2nd , 2. 2nd Additional Palette (.Gpl) , 2. zusätzliche Palette (.Gpl) 2nd Color , 2. Farbe 2nd Parameter , 2. Parameter 2nd Text , 2. Text 2nd Tone , 2. Ton 2nd Variance , 2. Abweichung 2nd X-Coord , 2. X-Kordel 2nd Y-Coord , 2. Y-Schnur 2x Type , 2x Typ 2XY Mirror , 2XY-Spiegel 2xy-Axes , 2xy-Achsen 3 Colors , 3 Farben 3 Grays , 3 Grautöne 3 Mix , 3 Mischung 3. Plasma Alpha Channel , 3. Plasma-Alpha-Kanal 30. Minimum Hue , 30. Minimaler Farbton 31. Maximum Hue , 31. Maximaler Farbton 32. Minimum Saturation , 32. Minimale Sättigung 33. Maximum Saturation , 33. Maximale Sättigung 34. Minimum Value , 34. Minimaler Wert 343 Keypoints , 343 Schlüsselpunkte 35. Maximum Value , 35. Maximaler Wert 36. Hue Offset , 36. Farbton-Versatz 37. Saturation Offset , 37. Sättigungs-Offset 38. Value Offset , 38. Wert Offset 3D Blocks , 3D-Blöcke 3D CLUT (Fast) , 3D-CLUT (schnell) 3D CLUT (Precise) , 3D-KLUG (Präzise) 3D Colored Object , Farbiges 3D-Objekt 3D Conversion , 3D-Konvertierung 3D Elevation , 3D-Erhöhung 3D Elevation [Animated] , 3D-Erhöhung [animiert] 3D Extrusion , 3D-Extrusion 3D Extrusion [Animated] , 3D-Extrusion [animiert] 3D Image Object , 3D-Bildobjekt 3D Image Object [Animated] , 3D-Bildobjekt [animiert] 3D Image Type , 3D-Bildtyp 3D Lathing , 3D-Drehen 3D Metaballs , 3D-Metabälle 3D Random Objects , Zufällige 3D-Objekte 3D Reflection , 3D-Reflexion 3D Rubber Object , 3D-Gummi-Objekt 3D Starfield , 3D-Sternenfeld 3D Text Pointcloud , 3D-Text-Punktwolke 3D Tiles , 3D-Kacheln 3D Video Conversion , 3D-Video-Konvertierung 3D Waves , 3D-Wellen 3rd , 3. 3rd Color , 3. Farbe 3rd Parameter , 3. Parameter 3rd Tone , 3. Ton 3rd X-Coord , 3. X-Kordel 3rd Y-Coord , 3. Y-Schnur 4 Colors , 4 Farben 4 Grays , 4 Grautöne 4. Segmentation [No Alpha Channel] , 4. Segmentierung [Kein Alphakanal] 4096x4096 Layer , 4096x4096 Ebene 4th , 4. 4th Color , 4. Farbe 4th Tone , 4. Ton 5. Edge Threshold , 5. Randschwelle 512x512 Layer , 512x512 Schicht 5th , 5. 5th Color , 5. Farbe 5th Tone , 5. Ton 6. Smoothness , 6. Geschmeidigkeit 60's (faded Alt) , 60er Jahre (verblasstes Alt) 60's (faded) , 60er Jahre (verblasst) 64 (Faster) , 64 (Schneller) 64 Keypoints , 64 Schlüsselpunkte 67.5 Deg. , 67,5 Grad. 6th , 6. 6th Color , 6. Farbe 6th Tone , 6. Ton 7. Blur , 7. Unschärfe 7th , 7. 7th Color , 7. Farbe 7th Tone , 7. Ton 8 Colors , 8 Farben 8 Grays , 8 Grautöne 8 Keypoints (RGB Corners) , 8 Schlüsselpunkte (RGB-Ecken) 8. Quadtree Pixelisation [No Alpha Channel] , 8. Quadtree Pixelisierung [Kein Alphakanal] 8th , 8. 8th Color , 8. Farbe 8th Tone , 8. Ton 9. Quadtree Min Precision , 9. Quadtree Min Präzision 90 Deg. , 90 Grad. 9th , 9. 9th Color , 9. Farbe A Lot of Cyan , Viel Cyan A Lot of Key , Eine Menge Schlüssel A Lot of Magenta , Viel Magenta A Lot of Yellow , Viel Gelb A-Color Factor , A-Farb-Faktor A-Color Shift , A-Farben-Verschiebung A-Color Smoothness , A-Farbe Glätte A-Component , A-Komponente A-Value , A-Wert A4 / 100 PPI (Recommended) , A4 / 100 PPI (empfohlen) About G'MIC , Über G'MIC Absolute Brightness , Absolute Helligkeit Absolute Value , Absoluter Wert Abstraction , Abstraktion Acceleration , Beschleunigung Achromatomaly , Achromatomie Achromatopsia , Achromatopsie Acros , Akros Acros+G , Akros+G Acros+R , Akros+R Acros+Ye , Akros+Ja Action , Aktion Action #1 , Aktion #1 Action #10 , Aktion #10 Action #11 , Aktion #11 Action #12 , Aktion #12 Action #13 , Aktion Nr. 13 Action #14 , Aktion #14 Action #15 , Aktion #15 Action #16 , Aktion #16 Action #17 , Aktion #17 Action #18 , Aktion Nr. 18 Action #19 , Aktion Nr. 19 Action #2 , Aktion #2 Action #20 , Aktion #20 Action #21 , Aktion #21 Action #22 , Aktion #22 Action #23 , Aktion #23 Action #24 , Aktion #24 Action #3 , Aktion #3 Action #4 , Aktion #4 Action #5 , Aktion #5 Action #6 , Aktion #6 Action #7 , Aktion Nr. 7 Action #8 , Aktion Nr. 8 Action #9 , Aktion #9 Action Magenta 01 , Aktion Magenta 01 Action Red 01 , Aktion Rot 01 Activate 'Pencil Smoother' , Aktivieren Sie 'Bleistiftglätter'. Activate Color Enhancement , Farbverbesserung aktivieren Activate Colors Geometric Shapes , Aktivieren von Farben Geometrische Formen Activate Custom Filter , Benutzerdefinierten Filter aktivieren Activate Lizards , Echsen aktivieren Activate Mirror , Spiegelung aktivieren Activate Pink Elephants , Rosa Elefanten aktivieren Activate Second Direction , Zweite Richtung aktivieren Activate Shakes , Schütteln aktivieren Activate Slice 1 , Aktivieren von Slice 1 Activate Slice 2 , Aktivieren von Slice 2 Activate Slice 3 , Aktivieren Sie Slice 3 Activate Slice 4 , Aktivieren von Slice 4 Activer Symmetrizoscope , Aktives Symmetrizoskop Adaptive , Anpassungsfähig Add , hinzufügen Add 1px Outline , 1px Gliederung hinzufügen Add Alpha Channels to Detail Scale Layers , Hinzufügen von Alphakanälen zu Detailskalierungsebenen Add as a New Layer , Als neue Ebene hinzufügen Add Chalk Highlights , Kreide-Highlights hinzufügen Add Color Background , Farbhintergrund hinzufügen Add Comment Area in HTML Page , Kommentarfeld in HTML-Seite hinzufügen Add Grain , Korn hinzufügen Add Image Label , Bildbeschriftung hinzufügen Add Painter's Touch , Painter's Touch hinzufügen Add User-Defined Constraints (Interactive) , Benutzerdefinierte Einschränkungen hinzufügen (interaktiv) Additional Duplicates Count , Zählung zusätzlicher Duplikate Additional Outline , Zusätzliche Gliederung Additive , Zusatzstoff Adjust Background Reconstruction , Hintergrund-Rekonstruktion anpassen Adventure 1453 , Abenteuer 1453 Agfa Ultra Color 100 , Agfa Ultra Farbe 100 Aggresive , Aggressiv Aggressive Highlights Recovery 5 , Aggressive Highlights Erholung 5 Algorithm , Algorithmus Alien Green , Ausländisches Grün Align Image Streams , Ausrichten von Bildströmen Align Layers , Ebenen ausrichten Aligned , Ausgerichtet Alignment Type , Ausrichtungstyp All , Alle All 45° Rotations , Alle 45° Rotationen All 90° Rotations , Alle 90° Rotationen All [Collage] , Alle [Collage] All but Reference Color , Alle außer Referenzfarbe All Layers and Masks , Alle Ebenen und Masken All Tones , Alle Töne All XY-Flips , Alle XY-Flips Allow Angle , Winkel zulassen Allow Outer Blending , Äußere Vermischung zulassen Allow Self Intersections , Selbstüberschneidungen zulassen Alpha Channel , Alphakanal Alpha Mode , Alpha-Modus Also Match Gradients , Auch Übereinstimmungsgradienten Ambient (%) , Umgebung (%) Ambient Lightness , Umgebungshelligkeit Amount , Betrag Amplitude / Angle , Amplitude / Winkel Anaglypgh Green/magenta Optimized , Anaglypgh Grün/Magenta Optimiert Anaglyph Blue/yellow , Anaglyphen Blau/Gelb Anaglyph Blue/yellow Optimized , Anaglyphen Blau/Gelb Optimiert Anaglyph Glasses Adjustment , Anpassung der Anaglyphenbrille Anaglyph Green/magenta , Anaglyphe Grün/Magenta Anaglyph Green/magenta Optimized , Anaglyph Grün/Magenta Optimiert Anaglyph Reconstruction , Anaglyphen-Wiederaufbau Anaglyph Red/cyan , Anaglyphen Rot/Cyan Anaglyph Red/cyan Optimized , Anaglyphen Rot/Cyan Optimiert Anaglyph: Red/Cyan , Anaglyphen: Rot/Cyan AnalogFX - Anno 1870 Color , AnalogFX - Anno 1870 Farbe AnalogFX - Old Style I , AnalogFX - Alter Stil I AnalogFX - Old Style II , AnalogFX - Alter Stil II AnalogFX - Old Style III , AnalogFX - Alter Stil III AnalogFX - Sepia Color , AnalogFX - Sepia-Farbe AnalogFX - Soft Sepia I , AnalogFX - Weiche Sepia I AnalogFX - Soft Sepia II , AnalogFX - Weiche Sepia II Analysis Scale , Analyse-Skala Analysis Smoothness , Analyse-Glätte And , Und Angle , Winkel Angle (%) , Winkel (%) Angle (deg) , Winkel (Grad) Angle (deg.) , Winkel (Grad) Angle / Size , Winkel / Größe Angle Cut , Winkel-Schnitt Angle Dispersion , Winkel-Dispersion Angle Image Contour , Winkel Bildkontur Angle of Disturbance Surface , Winkel der Störungsfläche Angle of Main Nebulous Surface , Winkel der nebulösen Hauptfläche Angle Range , Winkelbereich Angle Range (deg.) , Winkelbereich (Grad) Angle Tilt , Winkel Neigung Angle Variations , Winkel-Variationen Anguish , Qualen Angular , Winkelig Angular Precision , Winkel-Präzision Angular Tiles , Eckige Kacheln Anisotropic , Anisotrop Anisotropy , Anisotropie Annular Steiner Chain Round Tiles , Ringförmige Steiner-Ketten-Rundplatten Anti Alias , Anti-Alias Antisymmetry , Antisymmetrie Any , Jede Apocalypse This Very Moment , Die Apokalypse in diesem Augenblick Apples , Äpfel Apply Adjustments On , Anpassungen anwenden auf Apply Color Balance , Farbbalance anwenden Apply External CLUT , Externen CLUT anwenden Apply Mask , Maske anwenden Apply Skin Tone Mask , Hauttonmaske anwenden Apply Transformation From , Transformation anwenden von Aqua and Orange Dark , Aqua und Orange Dunkel Area , Bereich Area Smoothness , Flächenglätte Areas Light Adjustment , Einstellung der Flächenbeleuchtung Areas Smoothness , Bereiche Glätte Array [Faded] , Array [Verblasst] Array [Mirrored] , Array [Gespiegelt] Array [Random Colors] , Array [Zufallsfarben] Array [Random] , Array [Zufällig] Array [Regular] , Array [Regulär] Array Mode , Array-Modus Arrows , Pfeile Arrows (Outline) , Pfeile (Umriss) Artistic Modern , Künstlerische Moderne Artistic Hard , Künstlerisch hart Artistic Round , Künstlerische Runde Ascii Art , Ascii-Kunst Aspect , Aspekt Aspect Ratio , Seitenverhältnis Associated Color , Zugehörige Farbe Attenuation , Dämpfung Australia , Australien Auto Balance , Automatischer Abgleich Auto Crop , Automatischer Zuschnitt Auto Reduce Level (Level Slider Is Disabled) , Automatisches Reduzieren des Pegels (Pegelschieber ist deaktiviert) Auto Set Hue Inverse (Hue Slider Is Disabled) , Farbton automatisch invers einstellen (Farbton-Schieberegler ist deaktiviert) Auto-Clean Bottom Color Layer , Automatische Reinigung der unteren Farbebene Auto-Reduce Number of Frames , Auto-Reduzierung der Anzahl von Frames Auto-Set Periodicity , Automatisch eingestellte Periodizität Auto-Threshold , Auto-Schwellenwert Autocrop Output Layers , Autocrop-Ausgabe-Ebenen Automatic , Automatisch Automatic & Contrast Mask , Automatik & Kontrastmaske Automatic [Scan All Hues] , Automatisch [Alle Farbtöne scannen] Automatic Color Balance , Automatische Farbbalance Automatic Depth Estimation , Automatische Schätzung der Tiefe Automatic Upscale for Optimum Results , Automatische Hochskalierung für optimale Ergebnisse Autumn , Herbst Avalanche , Lawine Average , Durchschnitt Average 3x3 , Durchschnittlich 3x3 Average 5x5 , Durchschnittlich 5x5 Average 7x7 , Durchschnittlich 7x7 Average 9x9 , Durchschnittlich 9x9 Average RGB , Durchschnittliches RGB Average Smoothness , Durchschnittliche Glätte Avg / Max Weight , Avg / Maximales Gewicht Avg Branching , Avg Verzweigung Avg Left Angle (deg.) , Avg Linker Winkel (Grad) Avg Length Factor (%) , Avg-Längenfaktor (%) Avg Right Angle (deg.) , Avg Rechter Winkel (deg.) Avg Thickness Factor (%) , Avg-Dicke-Faktor (%) Axis , Achse Azimuth , Azimut B&W , SCHWARZ-WEISS B&W Pencil [Animated] , B&W-Bleistift [animiert] B&W Photograph , Schwarzweiß-Fotografie B&W Stencil , S/W-Schablone B&W Stencil [Animated] , Schwarzweiß-Schablone [animiert] B-Color Factor , B-Farb-Faktor B-Color Shift , B-Farbverschiebung B-Color Smoothness , B-Farbe Glätte B-Component , B-Komponente Background , Hintergrund Background Color , Hintergrundfarbe Background Intensity , Hintergrund-Intensität Background Point (%) , Hintergrundpunkt (%) Backward , Rückwärts Backward Horizontal , Horizontal rückwärts Backward Vertical , Vertikal rückwärts Balance , Bilanz Balance Color , Balance-Farbe Balance SRGB , Bilanz SRGB Balloons , Luftballons Balls , Bälle Band Width , Bandbreite Bandwidth , Bandbreite Barbed Wire , Stacheldraht Barnsley Fern , Gerstenfarn Bars , Stäbe Base Reference Dimension , Basis-Referenzmaß Base Scale , Basis-Skala Base Thickness (%) , Dicke der Basis (%) Basic Adjustments , Grundlegende Anpassungen Batch Processing , Batch-Verarbeitung Bayer Filter , Bayer-Filter Bayer Reconstruction , Bayer-Wiederaufbau Behind , Hinter Below , Unten Berlin Sky , Berliner Himmel Best Match , Beste Übereinstimmung BG Textured , BG Texturiert Bi-Directional , Bidirektional Bias , Voreingenommenheit Bicubic , Bikubisch Bidirectional [Sharp] , Bidirektional [Scharf] Bidirectional [Smooth] , Bidirektional [Glatt] Bidirectional Rendering , Bidirektionales Rendering Bilateral Radius , Bilateraler Radius Binary , Binär Binary Digits , Binärziffern Bit Masking (End) , Bit-Maskierung (Ende) Bit Masking (Start) , Bit-Maskierung (Start) Black , Schwarz Black & White , Schwarz-Weiß Black & White (25) , Schwarz-Weiß (25) Black & White-1 , Schwarz-Weiß-1 Black & White-10 , Schwarz-Weiß-10 Black & White-2 , Schwarz-Weiß-2 Black & White-3 , Schwarz-Weiß-3 Black & White-4 , Schwarz-Weiß-4 Black & White-5 , Schwarz-Weiß-5 Black & White-6 , Schwarz-Weiß-6 Black & White-7 , Schwarz-Weiß-7 Black & White-8 , Schwarz-Weiß-8 Black & White-9 , Schwarz-Weiß-9 Black Crayon Graffiti , Schwarzstift-Graffiti Black Dices , Schwarze Würfel Black Level , Schwarze Wasserwaage Black on Transparent , Schwarz auf Transparent Black on Transparent White , Schwarz auf transparentem Weiß Black on White , Schwarz auf Weiß Black Point , Schwarzpunkt Black Star , Schwarzer Stern Black to White , Schwarz-Weiß Blacks , Schwarze Blade Runner , Klingen-Läufer Blank , Leere Bleach Bypass , Bleichmittel-Bypass Bleach Bypass 1 , Bleichmittel-Bypass 1 Bleach Bypass 2 , Bleichmittel-Bypass 2 Bleach Bypass 3 , Bleichmittel-Bypass 3 Bleach Bypass 4 , Bleichmittel-Bypass 4 Bleech Bypass Green , Bleiche Umgehung Grün Bleech Bypass Yellow 01 , Bleech Bypass Gelb 01 Blend , Mischung Blend [Average All] , Blend [Durchschnittlich alle] Blend [Edges] , Blend [Kanten] Blend [Fade] , Blenden [Ausblenden] Blend [Median] , Mischung [Median] Blend [Seamless] , Blend [Nahtlos] Blend [Standard] , Mischung [Standard] Blend All Layers , Alle Ebenen ausblenden Blend Decay , Verblendungszerfall Blend Mode , Blend-Modus Blend Rays , Blend-Strahlen Blend Scales , Blend-Skalen Blend Size , Mischungsgröße Blend Threshold , Blend-Schwelle Blending Mode , Blending-Modus Blending Size , Mischungsgröße Blindness Type , Blindheit Typ Blob 1 , Klecks 1 Blob 1 Color , Blob 1 Farbe Blob 10 , Klecks 10 Blob 10 Color , Blob 10 Farbe Blob 11 , Klecks 11 Blob 11 Color , Blob 11 Farbe Blob 12 , Klecks 12 Blob 12 Color , Blob 12 Farbe Blob 2 Color , Blob 2 Farbe Blob 3 , Klecks 3 Blob 3 Color , Blob 3 Farbe Blob 4 , Klecks 4 Blob 4 Color , Blob 4 Farbe Blob 5 , Klecks 5 Blob 5 Color , Blob 5 Farbe Blob 6 , Klecks 6 Blob 6 Color , Blob 6 Farbe Blob 7 , Klecks 7 Blob 7 Color , Blob 7 Farbe Blob 8 , Klecks 8 Blob 8 Color , Blob 8 Farbe Blob 9 , Klecks 9 Blob 9 Color , Blob 9 Farbe Blob Size , Blob-Größe Blob2 , Klecks2 Blobs Editor , Blobs-Editor Bloc , Block Bloc Size (%) , Blockgröße (%) Blockism , Blockismus Bloom , Blume Blue , Blau Blue & Red Chrominances , Blaue und rote Chrominanzen Blue Chroma Factor , Blauer Chroma-Faktor Blue Chroma Shift , Blaue Chroma-Verschiebung Blue Chroma Smoothness , Blaue Chroma-Glätte Blue Chrominance , Blaue Chrominanz Blue Cold Fade , Blau-Kalt-Verblassen Blue Dark , Blau-Dunkel Blue Factor , Blauer Faktor Blue House , Blaues Haus Blue Ice , Blaues Eis Blue Level , Blaue Stufe Blue Mono , Blaue Mono Blue Rotations , Blaue Rotationen Blue Screen Mode , Blauer Bildschirm-Modus Blue Shadows 01 , Blaue Schatten 01 Blue Shift , Blaue Verschiebung Blue Smoothness , Blaue Glätte Blue Steel , Blauer Stahl Blue Wavelength , Blaue Wellenlänge Blue-Green , Blau-Grün Blur , Unschärfe Blur [Angular] , Unschärfe [Winkel] Blur [Bloom] , Unschärfe [Blüte] Blur [Depth-Of-Field] , Unschärfe [Tiefenschärfe] Blur [Gaussian] , Unschärfe [Gauß] Blur [Glow] , Unschärfe [Glühen] Blur [Linear] , Unschärfe [Linear] Blur [Multidirectional] , Unschärfe [Multidirektional] Blur [Radial] , Unschärfe [Radial] Blur Alpha , Unschärfe Alpha Blur Amount , Unscharfer Betrag Blur Amplitude , Unschärfe-Amplitude Blur Dodge and Burn Layer , Unscharfes Abwedeln und Brennschicht Blur Factor , Unschärfe-Faktor Blur Frame , Rahmen verwischen Blur Percentage , Unschärfe-Prozentsatz Blur Precision , Unschärfe-Präzision Blur Shade , Unschärfe Blur Standard Deviation , Standardabweichung der Unschärfe Blur Strength , Stärke der Unschärfe Blur the Mask , Die Maske verwischen Boats , Boote Boost , Verstärken Sie Boost Chromaticity , Verstärkung der Chromatizität Boost Contrast , Kontrast verstärken Boost Smooth , Glätten verstärken Boost Stroke , Schlaganfall verstärken Border Color , Randfarbe Border Opacity , Grenztransparenz Border Outline , Umriss der Grenze Border Smoothness , Glattheit der Grenze Border Thickness (%) , Grenzdicke (%) Border Width , Randbreite Both , Beide Bottles , Flaschen Bottom , Unten Bottom and Left Foreground , Unten und links vorne Bottom and Right Foreground , Unten und rechts vorne Bottom and Top Foreground , Unten und oben im Vordergrund Bottom Layer , Untere Schicht Bottom Left , Unten links Bottom Right , Unten rechts Bottom Size , Untere Größe Bottom-Left , Unten links Bottom-Left Vertex (%) , Unterer linker Scheitelpunkt (%) Bottom-Right , Unten-rechts Bottom-Right Vertex (%) , Unterer rechter Scheitelpunkt (%) Bouncing Balls , Aufprallende Bälle Boundaries (%) , Grenzen (%) Boundary , Grenze Boundary Condition , Randbedingung Boundary Conditions , Randbedingungen Box , Kasten Box Fitting , Kasten-Einbau Box2x , Kasten2x Branches , Zweigstellen Braque: Landscape near Antwerp , Braque: Landschaft bei Antwerpen Braque: Little Bay at La Ciotat , Braque: Kleine Bucht bei La Ciotat Braque: The Mandola , Braque: Die Mandola Brighness , Brillianz Bright , Helle Bright Green , Leuchtendes Grün Bright Green 01 , Leuchtendes Grün 01 Bright Length , Hell Länge Bright Pixels , Helle Pixel Bright Teal Orange , Leuchtende Krickente Orange Bright Warm , Hell-Warm Brighter , Heller Brightness , Helligkeit Brightness (%) , Helligkeit (%) Bristle Size , Größe der Borsten Brownish , Bräunlich Brushify , Bürsten Built-in Gray , Eingebaut Grau Bump Factor , Bump-Faktor Bump Map , Bump-Map Burn , verbrennen Burn Blur , Verbrennungsunschärfe Burn Strength , Stärke der Verbrennung Butterfly , Schmetterling By Blue Chrominance , Nach blauer Chrominanz By Blue Component , Nach blauer Komponente By Custom Expression , Nach benutzerdefiniertem Ausdruck By Green Component , Nach grüner Komponente By Iteration , Durch Iteration By Lightness , Durch Leichtigkeit By Luminance , Nach Leuchtdichte By Red Chrominance , Nach Roter Chrominanz By Red Component , Nach roter Komponente By Value , Nach Wert Camera Motion Only , Nur Kamerabewegung Camera X , Kamera X Camera Y , Kamera Y Cameraman , Kameramann Camouflage , Tarnung Candle Light , Kerzenlicht Canvas , Leinwand Canvas Brightness , Helligkeit der Leinwand Canvas Color , Leinwandfarbe Canvas Darkness , Leinwand-Dunkelheit Canvas Texture , Leinwand-Textur Car , Auto Card Suits , Karten-Anzüge Caribe , Karibik Cartesian Transform , Kartesische Transformation Cartoon , Zeichentrickfilm Cartoon [Animated] , Zeichentrickfilm [animiert] Cat , Katze Category , Kategorie Cell Size , Größe der Zelle Center , Zentrum Center (%) , Zentrum (%) Center Background , Hintergrund des Zentrums Center Foreground , Zentrum Vordergrund Center Help , Hilfe zum Zentrum Center Size , Größe der Mitte Center Smoothness , Glattheit der Mitte Center X , Zentrum X Center X-Shift , X-Verschiebung zentrieren Center Y , Mitte Y Center Y-Shift , Y-Verschiebung zentrieren Centering (%) , Zentrierung (%) Centering / Scale , Zentrierung/Skalierung Centers Color , Zentren Farbe Centers Radius , Zentren Radius Centimeter , Zentimeter Central Perspective Outdoor , Zentralperspektive Außen Central Perspective Indoor , Zentralperspektive Innen Central Perspective Outdoor , Zentralperspektive Außen Centre , Zentrum Chalk It Up , Kreide es ein Channel #1 , Kanal 1 Channel #2 , Kanal 2 Channel #3 , Kanal #3 Channel Processing , Kanal-Verarbeitung Channel(s) , Kanal(e) Channels , Kanäle Channels to Layers , Kanäle zu Ebenen Charcoal , Holzkohle Charset , Zeichensatz Chebyshev , Tschebyschow Checkered , Geprüft Checkered Inverse , Geprüfte Inverse Chemical 168 , Chemikalie 168 Chessboard , Schachbrett Chick , Küken Chroma Noise , Chroma-Lärm Chromatic Aberrations , Chromatische Aberrationen Chromaticity From , Chromatizität von Chrome 01 , Chrom 01 Chrominances Only (ab) , Nur Chrominanzen (ab) Chrominances Only (CbCr) , Nur Chrominanzen (CbCr) Cine Drama , Filmdrama Cine Teal Orange 1 , Krickentee Orange 1 Cine Teal Orange 2 , Krickentee Orange 2 Cine Vibrant , Lebendiger Cine Cinema , Kino Cinema 2 , Kino 2 Cinema 3 , Kino 3 Cinema 4 , Kino 4 Cinema 5 , Kino 5 Cinematic (8) , Kinematografisch (8) Cinematic for Flog , Cinematic für Flog Cinematic Lady Bird , Cinematischer Frauenvogel Cinematic Mexico , Cinematisches Mexiko Cinematic Travel (29) , Kinematografische Reisen (29) Cinematic-1 , Kinematografisch-1 Circle , Kreis Circle (Inv.) , Kreis (Inv.) Circle 1 , Kreis 1 Circle 2 , Kreis 2 Circle Abstraction , Kreis-Abstraktion Circle Art , Kreis-Kunst Circle to Square , Vom Kreis zum Quadrat Circle Transform , Kreis-Transformation Circles , Kreise Circles (Outline) , Kreise (Umriss) Circles 1 , Kreise 1 Circles 2 , Kreise 2 Circular , Rundschreiben City 7 , Stadt 7 Clarity , Klarheit Classic Chrome , Klassisches Chrom Classic Teal and Orange , Klassische Krickente und Orange Clean , Sauber Clean Text , Text bereinigen Clear Control Points , Kontrollpunkte löschen Clear Teal Fade , Krickende Krickente löschen Cliff , Klippe Clip , Ausschnitt Clip CMYK , Ausschnitt CMYK Clip RGB , Ausschnitt RGB Closeup , Nahaufnahme Closing , Schließung Closing - Opening , Schliessen - Öffnen Closing - Original , Schließung - Original Clouds , Wolken CLUT from After - Before Layers , CLUT von danach - vor Schichten CLUT Opacity , CLUT-Trübung CM[Yellow]K , CM[Gelb]K CMY[Key] , CMY[Schlüssel] CMYK [cyan] , CMYK [Zyan] CMYK [Key] , CMYK [Schlüssel] CMYK [Yellow] , CMYK [Gelb] CMYK Tone , CMYK-Ton Coarse , Grob Coarsest (faster) , Am gröbsten (schneller) Coefficients , Koeffizienten Coffee 44 , Kaffee 44 Coherence , Kohärenz Cold Clear Blue , Kaltes klares Blau Cold Clear Blue 1 , Kaltes klares Blau 1 Cold Simplicity 2 , Kalte Einfachheit 2 Color , Farbe Color (rich) , Farbe (reichhaltig) Color 1 , Farbe 1 Color 1 (Up/Left Corner) , Farbe 1 (obere/linke Ecke) Color 2 , Farbe 2 Color 2 (Up/Right Corner) , Farbe 2 (oben/rechte Ecke) Color 3 , Farbe 3 Color 3 (Bottom/Left Corner) , Farbe 3 (Untere / Linke Ecke) Color 4 , Farbe 4 Color 4 (Bottom/Right Corner) , Farbe 4 (unten/rechte Ecke) Color A , Farbe A Color Abstraction Opacity , Deckkraft der Farbabstraktion Color Abstraction Paint , Farbe Abstraktionsmalerei Color B , Farbe B Color Balance , Farbbalance Color Basis , Farbe Basis Color Blending , Farbmischung Color Blindness , Farbenblindheit Color Blue-Yellow , Farbe Blau-Gelb Color Boost , Farbverstärkung Color Burn , Farbverbrennung Color C , Farbe C Color Channel Smoothing , Farbkanal-Glättung Color Channels , Farb-Kanäle Color D , Farbe D Color Dispersion , Farbverteilung Color Doping , Farb-Doping Color E , Farbe E Color Effect Mode , Farbeffekt-Modus Color F , Farbe F Color G , Farbe G Color Gamma , Farbe Gamma Color Grading , Farbgradierung Color Green-Magenta , Farbe Grün-Magenta Color Highlights , Farbliche Highlights Color Image , Farbbild Color Intensity , Farbintensität Color Mask , Farbmaske Color Mask [Interactive] , Farbmaske [Interaktiv] Color Median , Farbe Median Color Metric , Farbe Metrisch Color Midtones , Farbe Mitteltöne Color Mode , Farbmodus Color Model , Farbmodell Color Negative , Farbnegativ Color on White , Farbe auf Weiß Color Overall Effect , Farbe Gesamteffekt Color Presets , Farbvoreinstellungen Color Quantization , Farbquantisierung Color Rendering , Farbwiedergabe Color Shading (%) , Farbschattierung (%) Color Shadows , Farbschatten Color Smoothness , Farbe Glätte Color Space , Farbraum Color Spots + Extrapolated Colors + Lineart , Farbflecken + extrapolierte Farben + Lineart Color Spots + Lineart , Farbflecken + Lineart Color Strength , Farbstärke Color Temperature , Farbtemperatur Color Tolerance , Farb-Toleranz Color Variation [Random -1] , Farbvariation [Zufall -1] Colorbase , Farbbasis Colorburn , Farbverbrennung Colored Geometry , Farbige Geometrie Colored Grain , Gefärbtes Korn Colored Lineart , Farbige Lineart Colored on Black , Farbig auf Schwarz Colored on Transparent , Farbig auf Transparent Colored Outline , Farbiger Umriss Colored Pencils , Farbstifte Colored Regions , Farbige Regionen Colorful , Farbenfroh Colorful 0209 , Farbenfroh 0209 Colorful Blobs , Bunte Kleckse Coloring , Farbgebung Colorize [Interactive] , Einfärben [Interaktiv] Colorize [Photographs] , Kolorieren [Fotografien] Colorize [with Colormap] , Einfärben [mit Colormap] Colorize Lineart [Auto-Fill] , Lineart einfärben [Automatisches Ausfüllen] Colorize Lineart [Propagation] , Lineart einfärben [Ausbreitung] Colorize Lineart [Smart Coloring] , Lineart einfärben [Smart Coloring] Colorize Mode , Einfärben-Modus Colorized Image (1 Layer) , Eingefärbtes Bild (1 Ebene) Colormap , Farbkarte Colormap Type , Farbkarten-Typ Colors , Farben Colors A , Farben A Colors B , Farben B Colors Only , Nur Farben Colors Only (1 Layer) , Nur Farben (1 Ebene) Colors to Layers , Farben zu Ebenen Colorspace , Farbraum Colour , Farbe Colour Channels , Farb-Kanäle Colour Model , Farbmodell Colour Smoothing , Farbglättung Colour Space Mode , Farbraum-Modus Column by Column , Kolumne für Kolumne Comic Style , Comic-Stil Comix Colors , Comix-Farben Components , Komponenten Composed Layers , Zusammengesetzte Schichten Compress Highlights , Highlights komprimieren Compression Blur , Komprimierungsunschärfe Compression Filter , Kompressionsfilter Computation Mode , Berechnungsmodus Cone , Kegel Conflict 01 , Konflikt 01 Conformal Maps , Konforme Karten Connect-Four , Connect-Vier Connectivity , Konnektivität Connectors Centering , Verbinder Zentrierung Connectors Variability , Variabilität von Verbindern Constrain Image Size , Bildgröße einschränken Constrain Values , Werte einschränken Constrained Sharpen , Eingeschränktes Schärfen Constraint Radius , Einschränkungsradius Continuous Droste , Kontinuierliche Droste Contour Coherence , Kontur-Kohärenz Contour Detection (%) , Kontur-Erkennung (%) Contour Normalization , Kontur-Normalisierung Contour Precision , Kontur-Präzision Contour Threshold , Kontur-Schwellenwert Contour Threshold (%) , Kontur-Schwellenwert (%) Contours , Konturen Contours + Flocon/Snowflake , Konturen + Flöckchen/Schneeflocke Contours Recursion , Konturen-Rekursion Contrail 35 , Kondensstreifen 35 Contrast , Kontrast Contrast (%) , Kontrast (%) Contrast Smoothness , Kontrast Glätte Contrast Swiss Mask , Kontrast Schweizer Maske Contrast with Highlights Protection , Kontrast mit Highlights Schutz Contrasty Afternoon , Kontrastierender Nachmittag Contrasty Green , Kontrastierendes Grün Contributors , Mitwirkende Control Point 1 , Kontrollpunkt 1 Control Point 2 , Kontrollpunkt 2 Control Point 3 , Kontrollpunkt 3 Control Point 4 , Kontrollpunkt 4 Control Point 5 , Kontrollpunkt 5 Control Point 6 , Kontrollpunkt 6 Convolve , zusammenfalten Cool (256) , Kühl (256) Cool / Warm , Kalt / Warm Copper , Kupfer Corner Brightness , Helligkeit der Ecke Correlated Channels , Korrelierte Kanäle Cos(z) , Kos(z) Counter Clockwise , Gegen den Uhrzeigersinn Course 4 , Kurs 4 Cracks , Risse Crease , Falte Creative Pack (33) , Kreativ-Paket (33) Crip Winter , Krippe Winter Crisp Romance , Knackige Romantik Crisp Warm , Knusprig Warm Criterion , Kriterium Crop , Ernte Crop (%) , Ernte (%) Cross Process CP 130 , Prozessübergreifend CP 130 Cross Process CP 14 , Prozessübergreifend CP 14 Cross Process CP 15 , Prozessübergreifend CP 15 Cross Process CP 16 , Prozessübergreifend CP 16 Cross Process CP 18 , Prozessübergreifend CP 18 Cross Process CP 3 , Prozessübergreifend CP 3 Cross Process CP 4 , Prozessübergreifend CP 4 Cross Process CP 6 , Prozessübergreifend CP 6 Cross-Hatch Amount , Betrag der Kreuzschraffur Crossed , Überquert Crosses 1 , Kreuze 1 Crosses 2 , Kreuze 2 Crosshair , Fadenkreuz CRT Sub-Pixels , CRT-Sub-Pixel Crystal , Kristall Crystal Background , Kristall-Hintergrund Cube , Würfel Cube (256) , Würfel (256) Cubic , Kubisch Cubicle 99 , Kabine 99 Cubism , Kubismus Cubism on Color Abstraction , Kubismus auf Farbabstraktion Cup , Pokal Cupid , Amor Curvature , Krümmung Curvature Shadow , Krümmungs-Schatten Curve Amount , Betrag der Kurve Curve Angle , Kurven-Winkel Curve Length , Länge der Kurve Curved , Gebogen Curved Stroke , Gekrümmter Hub Curves , Kurven Curves Previously Defined , Zuvor definierte Kurven Custom , Benutzerdefiniert Custom Code [Global] , Benutzerdefinierter Code [Global] Custom Code [Local] , Benutzerdefinierter Code [Lokal] Custom Correction Map , Benutzerdefinierte Korrekturkarte Custom Depth Correction , Benutzerdefinierte Tiefenkorrektur Custom Depth Maps Stream , Stream mit benutzerdefinierten Tiefenkarten Custom Dictionary , Benutzerdefiniertes Wörterbuch Custom Filter Code , Benutzerdefinierter Filter-Code Custom Formula , Benutzerdefinierte Formel Custom Kernel , Benutzerdefinierter Kernel Custom Layers , Benutzerdefinierte Ebenen Custom Layout , Benutzerdefiniertes Layout Custom Style (Bottom Layer) , Benutzerdefinierter Stil (unterste Ebene) Custom Style (Top Layer) , Benutzerdefinierter Stil (oberste Ebene) Custom Transform , Benutzerdefinierte Transformation Customize CLUT , CLUT anpassen Cut , ausschneiden Cut & Normalize , Ausschneiden & Normalisieren Cut High , Hoch schneiden Cut Low , Niedrig schneiden Cutout , Ausschnitt Cyan Factor , Cyan-Faktor Cyan Shift , Zyan-Verschiebung Cyan Smoothness , Cyan-Glätte Cycle Layers , Zyklus-Schichten Cycles , Zyklen Cylinder , Zylinder D and O 1 , D und O 1 Damping per Octave , Dämpfung pro Oktave Dark Motive , Dunkles Motiv Dark Blues in Sunlight , Dunkles Blau im Sonnenlicht Dark Boost , Dunkle Verstärkung Dark Color , Dunkle Farbe Dark Edges , Dunkle Ränder Dark Green 02 , Dunkelgrün 02 Dark Green 1 , Dunkelgrün 1 Dark Grey , Dunkelgrau Dark Length , Dunkle Länge Dark Motive , Dunkles Motiv Dark Pixels , Dunkle Pixel Dark Place 01 , Dunkler Ort 01 Dark Screen , Dunkler Bildschirm Dark Sky , Dunkler Himmel Dark Walls , Dunkle Mauern Darken , Verdunkeln Darker , Dunkler Darkness , Dunkelheit Darkness Level , Dunkelheitsgrad Date 39 , Datum 39 Day for Night , Tag für Nacht Day4Nite , Tag4Nite Daylight Scene , Tageslicht-Szene Debug Font Size , Schriftgröße debuggen Decagon , Zehneck Decompose , zerlegen Decompose Channels , Kanäle zersetzen Decoration , Dekoration Decreasing , Abnehmend Deep , Tief Deep Blue , Tiefblau Deep Dark Warm , Tiefdunkel-Warm Deep High Contrast , Tief Hoher Kontrast Deep Teal Fade , Tiefes Kricken der Krickente Deep Warm Fade , Tiefes warmes Fading Default , Standardmäßig Defects Contrast , Defekte Kontrast Defects Density , Dichte der Defekte Defects Size , Defekte Größe Defects Smoothness , Defekte Glätte Deform , verformen Delaunay-Oriented , Delaunay-orientiert Delaunay: Portrait De Metzinger , Delaunay: Porträt De Metzinger Delaunay: Windows Open Simultaneously , Delaunay: Fenster gleichzeitig geöffnet Delete Layer Source , Layer-Quelle löschen Delicatessen , Feinkostladen Denoise Simple 40 , Denoise einfach 40 Density , Dichte Density (%) , Dichte (%) Depth , Tiefe Depth Fade In Frames , Tiefeneinblendung von Frames Depth Fade Out Frames , Tiefenausblendungs-Rahmen Depth Field Control , Tiefenfeldsteuerung Depth Map , Tiefenkarte Depth Map Construction , Konstruktion der Tiefenkarte Depth Map Only , Nur Tiefenkarte Depth Map Reconstruction , Rekonstruktion der Tiefenkarte Depth Maps Only , Nur Tiefenkarten Depth-Of-Field Type , Schärfentiefe-Typ Desaturate , Entsättigen Desaturate (%) , Entsättigt (%) Desaturate Norm , Entsättigungs-Norm Descent Method , Abstammungsmethode Descreen , Bildschirm Desert Gold 37 , Wüstengold 37 Destination (%) , Reiseziel (%) Destination X-Tiles , Zielort X-Tiles Destination Y-Tiles , Ziel Y-Kacheln Detail , Einzelheiten Detail Level , Detail-Ebene Detail Reconstruction Detection , Detail-Rekonstruktions-Erkennung Detail Reconstruction Smoothness , Detail Glattheit der Rekonstruktion Detail Reconstruction Strength , Detail Stärke des Wiederaufbaus Detail Reconstruction Style , Detail Rekonstruktionsstil Detail Scale , Detail-Skala Detail Strength , Detail Stärke Details , Einzelheiten Details Amount , Details Betrag Details Equalizer , Details Entzerrer Details Scale , Details Skala Details Smoothness , Details Glätte Details Strength (%) , Details Stärke (%) Detect Skin , Haut erkennen Deuteranomaly , Deuteranomalie Deuteranopia , Deuteranopie Deviation , Abweichung Diamond , Diamant Diamond (Inv.) , Diamant (Inv.) Diamonds , Diamanten Diamonds (Outline) , Diamanten (Umriss) Dices , Würfel Dices with Colored Numbers , Würfel mit farbigen Zahlen Dices with Colored Sides , Würfel mit farbigen Seiten Difference , Unterschied Difference Mixing , Unterschied Mischen Difference of Gaussians , Unterschied der Gaußianer Different Axis , Andere Achse Diffuse (%) , Diffus (%) Diffuse Shadow , Diffuser Schatten Diffusion , Verbreitung Diffusion Tensors , Diffusions-Tensoren Diffusivity , Diffusität Digits , Ziffern Dilate , Dilatieren Dilation , Dilatation Dilation - Original , Dilatation - Original Dilation / Erosion , Dilatation/Erosion Dimensions (%) , Abmessungen (%) Dimensions Pixels , Abmessungen Pixel Dipole: 1/(4*z^2-1) , Dipol: 1/(4*z^2-1) Direct , Direkt Direction , Wegbeschreibung Directions 23 , Wegbeschreibung 23 Dirty , Schmutzig Disable , Deaktivieren Sie Disabled , Behinderte Discard Contour Guides , Konturenführungen verwerfen Discard Transparency , Transparenz verwerfen Disco , Diskothek Display , anzeigen Display Blob Controls , Blob-Steuerelemente anzeigen Display Color Axes , Farbachsen anzeigen Display Contours , Konturen anzeigen Display Coordinates , Koordinaten anzeigen Display Coordinates on Preview Window , Koordinaten im Vorschaufenster anzeigen Display Debug Info on Preview , Debug-Informationen in der Vorschau anzeigen Distance , Entfernung Distance (Fast) , Entfernung (schnell) Distance Transform , Entfernungstransformation Distort Lens , Verzerrte Linse Distortion Factor , Verzerrungsfaktor Distortion Surface Angle , Verzerrungsflächenwinkel Distortion Surface Position , Position der Verzerrungsfläche Disturbance Scale-By-Factor , Störungs-Skala-nach-Faktor Disturbance X , Störung X Disturbance Y , Störung Y Dither Output , Dither-Ausgabe Divide , Teilt Do Not Flatten Transparency , Transparenz nicht verflachen Dodge , Ausweichen Dodge and Burn , Ausweichen und Verbrennen Dodge Blur , Unscharf ausweichen Dodge Strength , Stärke des Ausweichens DOF Analyzer , DOF-Analysator Dog , Hund Don't Sort , Nicht sortieren DoNothing , Nichts tun Dot Size , Punktgröße Dots , Punkte Download External Data , Externe Daten herunterladen Dragon Curve , Drachen-Kurve Dragonfly , Libelle Drawing Mode , Zeichnen-Modus Drawn Montage , Gezeichnete Montage Dream , Traum Dream 1 , Traum 1 Dream 85 , Traum 85 Dream Smoothing , Traum-Glättung Drop Blues , Blues fallen lassen Drop Green Tint 14 , Tropfen Grüner Farbton 14 Drop Shadow , Schlagschatten Drop Shadow 3D , Schlagschatten 3D Drop Water , Tropfen Wasser Duck , Ente Duplicate Bottom , Unten duplizieren Duplicate Horizontal , Horizontal duplizieren Duplicate Left , Links duplizieren Duplicate Right , Recht duplizieren Duplicate Top , Duplizieren Oben Duplicate Vertical , Duplikat Vertikal Duration , Dauer Dusty , Verstaubt Dynamic Range Increase , Erhöhung des Dynamikbereichs Eagle , Adler Earth , Erde Earth Tone Boost , Verstärkung des Erdtons Easy Skin Retouch , Einfache Hautretusche Edge , Rand Edge Antialiasing , Kanten-Antialiasing Edge Attenuation , Kantendämpfung Edge Behavior X , Kantenverhalten X Edge Behavior Y , Kantenverhalten Y Edge Detect Includes Chroma , Randerkennung schließt Chroma ein Edge Exponent , Randexponent Edge Fidelity , Kante Treue Edge Influence , Randbeeinflussung Edge Mask , Randmaske Edge Sensitivity , Empfindlichkeit der Kante Edge Shade , Kantenschattierung Edge Simplicity , Einfachheit am Rand Edge Smoothness , Kantenglätte Edge Thickness , Dicke der Kante Edge Threshold , Randschwelle Edge Threshold (%) , Randschwelle (%) Edge-Oriented , Kantenorientiert Edges , Kanten Edges (%) , Ränder (%) Edges [Animated] , Ränder [animiert] Edges Offsets , Randverschiebungen Edges on Fire , Ränder in Brand Edges-0.5 (beware: Memory-Consuming!) , Kanten-0,5 (Vorsicht: Speicherfressend!) Edges-1 (beware: Memory-Consuming!) , Ränder-1 (Vorsicht: Speicherfressend!) Edges-2 (beware: Memory-Consuming!) , Ränder-2 (Vorsicht: Speicherfressend!) Effect Strength , Stärke der Wirkung Effect X-Axis Scaling , Effekt X-Achsenskalierung Effect Y-Axis Scaling , Wirkung Y-Achsenskalierung Eight Layers , Acht Schichten Eight Threads , Acht Fäden Elegance 38 , Eleganz 38 Elephant , Elefant Elevation , Höhe Elevation (%) , Höhe (%) Ellipse Painting , Ellipsen-Malerei Ellipse Ratio , Ellipsen-Verhältnis Ellipsionism , Ellipsionismus Ellipsionism Opacity , Ellipsionismus-Trübung Emboss , Prägen Enable Antialiasing , Antialiasing aktivieren Enable Interpolated Motion , Interpolierte Bewegung aktivieren Enable Morphology , Morphologie aktivieren Enable Paintstroke , Farbschlag aktivieren Enable Segmentation , Segmentierung aktivieren Enchanted , Verzaubert End Color , Endfarbe End Frame Number , End-Rahmennummer End of Mid-Tones , Ende der Mitteltöne End Point Connectivity , Endpunkt-Konnektivität End Point Rate (%) , Endpunkt-Rate (%) Ending Angle , Endwinkel Ending Color , Endfarbe Ending Feathering , Federung beenden Ending Point (%) , Endpunkt (%) Ending Scale (%) , Endwert-Skala (%) Ending Value , Endwert Ending X-Centering , Beenden der X-Zentrierung Ending Y-Centering , Y-Zentrierung beenden Engrave , Gravieren Sie Enhance Detail , Detail verbessern Enhance Details , Details verbessern Equalization , Gleichstellung Equalization (%) , Gleichstellung (%) Equalize , Ausgleichen Equalize and Normalize , Ausgleichen und Normalisieren Equalize at Each Step , Bei jedem Schritt ausgleichen Equalize HSI-HSL-HSV , HSI-HSL-HSV ausgleichen Equalize HSV , HSV ausgleichen Equalize Light , Licht ausgleichen Equalize Local Histograms , Lokale Histogramme ausgleichen Equalize Shadow , Schatten ausgleichen Equation Plot [Parametric] , Gleichungsdiagramm [Parametrisch] Equation Plot [Y=f(X)] , Gleichungsdiagramm [Y=f(X)] Equirectangular to Nadir-Zenith , Gleichschenklig zu Nadir-Zenit Erosion / Dilation , Erosion / Dilatation Etch Tones , Ätz-Töne Eterna for Flog , Eterna für Flog Euclidean , Euklidisch Euclidean - Polar , Euklidisch - Polar Exclusion , Ausschluss Expand , Erweitern Sie Expand Background Reconstruction , Hintergrund-Wiederaufbau erweitern Expand Shadows , Schatten ausdehnen Expand Size , Größe erweitern Expanding Mirrors , Expandierende Spiegel Expired (fade) , Abgelaufen (verblassen) Expired (polaroid) , Abgelaufen (Polaroid) Expired 69 , Abgelaufen 69 Exponent (Imaginary) , Exponent (imaginär) Exponential , Exponentiell Export RGB-565 File , RGB-565-Datei exportieren Exposure , Exposition Expression , Ausdruck Extend 1px , Erweitern 1px External Transparency , Externe Transparenz Extra Smooth , Extra glatt Extract Foreground [Interactive] , Auszug Vordergrund [Interaktiv] Extract Objects , Objekte extrahieren Extrapolate Color Spots on Transparent Top Layer , Farbflecken auf transparenter oberer Ebene extrapolieren Extrapolate Colors As , Farben extrapolieren als Extrapolated Colors + Lineart , Hochgerechnete Farben + Lineart Extreme , Extrem Factor , Faktor Fade , verblassen Fade End , Ende ausblenden Fade End (%) , Ende ausblenden (%) Fade Layers , Ebenen ausblenden Fade Start , Start ausblenden Fade Start (%) , Beginn ausblenden (%) Fade to Green , Auf Grün überblenden Faded , Verblasst Faded (alt) , Verblasst (alt) Faded (analog) , Verblasst (analog) Faded (extreme) , Verblasst (extrem) Faded (vivid) , Verblasst (lebendig) Faded 47 , Verblasst 47 Faded Green , Verblasstes Grün Faded Look , Verblasster Look Faded Print , Verblasster Druck Faded Retro 01 , Verblasstes Retro 01 Faded Retro 02 , Verblasstes Retro 02 Fading , Verblassen Fading Shape , Verblassende Form Fall Colors , Herbstfarben Far Point Deviation , Fernpunkt-Abweichung Fast , Schnell Fast (Approx.) , Schnell (Ungefähr.) Fast (Low Precision) Preview , Schnelle (niedrige Präzision) Vorschau Fast Approximation , Schnelle Annäherung Fast Blend , Schnelle Mischung Fast Blend Preview , Schnelle Blend-Vorschau Fast Recovery , Schnelle Wiederherstellung Fast Resize , Schnelle Größenänderung Faux Infrared , Faux-Infrarot Feathering , Federn Feature Analyzer Smoothness , Feature Analyzer Glätte Feature Analyzer Threshold , Schwelle des Feature-Analysators Felt Pen , Filzstift FFT Preview , FFT-Vorschau Fibers , Fasern Fibers Amplitude , Fasern Amplitude Fibers Smoothness , Fasern Glätte Fibrousness , Fasrigkeit Fidelity Chromaticity , Farbtreue Fidelity Smoothness (Coarsest) , Treue Glätte (am gröbsten) Fidelity Smoothness (Finest) , Treue Glätte (feinste) Fidelity to Target (Coarsest) , Zieltreue (am gröbsten) Fidelity to Target (Finest) , Zieltreue (vom Feinsten) Filename , Dateiname Fill Holes , Füllen von Löchern Fill Holes % , Füllen Löcher % Fill Transparent Holes , Transparente Löcher füllen Filled , Gefüllt Filled Circles , Gefüllte Kreise Filling , Füllung Film Highlight Contrast , Filmhighlight-Kontrast Film Print 01 , Filmkopie 01 Film Print 02 , Filmkopie 02 Filmic , Filmisch Filter Design , Filter-Entwurf Final Image , Endgültiges Bild Fine , Gut Fine 2 , Bußgeld 2 Fine Details Smoothness , Feine Details Glätte Fine Details Threshold , Schwelle für feine Details Fine Noise , Feiner Lärm Fine Scale , Feine Skala Finest (slower) , Feinste (langsamer) Finger Paint , Fingerfarbe Finger Size , Fingergröße Fire Effect , Feuer-Effekt Fireworks , Feuerwerk First , Erste First Color , Erste Farbe First Frame , Erster Rahmen First Offset , Erster Offset First Radius , Erster Radius First Size , Erste Größe Fish-Eye , Fischauge Fish-Eye Effect , Fischaugen-Effekt Fitting Function , Anpassungsfunktion Five Layers , Fünf Schichten Flag , Flagge Flag (256) , Flagge (256) Flat , Wohnung Flat 30 , Wohnung 30 Flat Color , Flache Farbe Flat Regions Removal , Entfernung flacher Regionen Flat-Shaded , Flachschattiert Flatness , Ebenheit Flip & Rotate Blocs , Blöcke spiegeln und drehen Flip Cross-Hatch , Flip-Kreuzschraffur Flip Left / Right , Links/Rechts spiegeln Flip Left/Right , Links/Rechts spiegeln Flip The Pattern , Das Muster umdrehen Flip Tolerance , Flip-Toleranz Flower , Blume Focale , Schwerpunkt Foggy Night , Neblige Nacht Folder Name , Name des Ordners Font Colors , Schriftfarben Font Height (px) , Schrifthöhe (px) Force Gray , Kraft Grau Force Re-Download from Scratch , Erneutes Herunterladen von Scratch erzwingen Force Tiles to Have Same Size , Gleiche Größe der Fliesen erzwingen Force Transparency , Transparenz erzwingen Foreground Color , Vordergrundfarbe Form , Formular Formula , Formel Forward , Vorwärts Forward Horizontal , Horizontal vorwärts Forward Horizontal , Horizontal vorwärts Forward Vertical , Vorwärts vertikal Four Layers , Vier Schichten Four Threads , Vier Fäden Fourier Analysis , Fourier-Analyse Fourier Filtering , Fourier-Filterung Fourier Transform , Fourier-Transformation Fourier Watermark , Fourier-Wasserzeichen Fractal Noise , Fraktales Rauschen Fractal Points , Fraktale Punkte Fractal Set , Fraktaler Satz Fractal Whirl , Fraktaler Wirbel Fractalize , Fraktalisieren Fractured Clouds , Zerklüftete Wolken Fragment Blur , Fragment-Unschärfe Frame (px) , Rahmen (px) Frame [Blur] , Rahmen [Unschärfe] Frame [Cube] , Rahmen [Würfel] Frame [Fuzzy] , Rahmen [Fuzzy] Frame [Mirror] , Rahmen [Spiegel] Frame [Painting] , Rahmen [Malerei] Frame [Pattern] , Rahmen [Muster] Frame [Regular] , Rahmen [Regulär] Frame [Round] , Rahmen [Rund] Frame [Smooth] , Rahmen [Glatt] Frame as a New Layer , Rahmen als neue Ebene Frame Color , Rahmenfarbe Frame Files Format , Format der Rahmendateien Frame Format , Rahmen-Format Frame Size , Rahmengröße Frame Skip , Rahmen überspringen Frame Type , Rahmentyp Frame Width , Rahmenbreite Frames , Rahmen Frames Offset , Frames versetzt Freaky B&W , Verrücktes S/W Freaky Details , Verrückte Details Freeze , einfrieren French Comedy , Französische Komödie Frequency , Häufigkeit Frequency (%) , Häufigkeit (%) Frequency Analyzer , Frequenz-Analysator Frequency Range , Frequenzbereich Freqy Pattern , Freqy-Muster Friends Hall of Fame , Ruhmeshalle der Freunde From Input , Von Eingabe From Reference Color , Von Referenzfarbe Frosted , Gefrostete Frosted Beach Picnic , Picknick am gefrosteten Strand Fruits , Früchte Fuji 3510 (Cuspclip) , Fuji 3510 (Muschelklemme) Fuji 3513 (Cuspclip) , Fuji 3513 (Muschelklemme) Fuji FP-100c Cool , Fuji FP-100c Kühl Fuji FP-100c Cool + , Fuji FP-100c Kühl + Fuji FP-100c Cool ++ , Fuji FP-100c Kühl ++ Fuji FP-100c Negative , Fuji FP-100c Negativ Fuji FP-100c Negative + , Fuji FP-100c Negativ + Fuji FP-100c Negative ++ , Fuji FP-100c Negativ ++ Fuji FP-100c Negative +++ , Fuji FP-100c Negativ +++ Fuji FP-100c Negative ++a , Fuji FP-100c Negativ ++a Fuji FP-100c Negative - , Fuji FP-100c Negativ - Fuji FP-100c Negative -- , Fuji FP-100c Negativ -- Fuji FP-3000b Negative , Fuji FP-3000b Negativ Fuji FP-3000b Negative + , Fuji FP-3000b Negativ + Fuji FP-3000b Negative ++ , Fuji FP-3000b Negativ ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Negativ +++ Fuji FP-3000b Negative - , Fuji FP-3000b Negativ - Fuji FP-3000b Negative -- , Fuji FP-3000b Negativ -- Fuji FP-3000b Negative Early , Fuji FP-3000b Negativ früh Fuji Superia 100 , Fuji-Superia 100 Fuji Superia 200 , Fuji-Superia 200 Full , Vollständig Full (Allows Multi-Layers) , Vollständig (erlaubt Multi-Layer) Full (Slower) , Voll (langsamer) Full Bottom/top , Vollständig Unten/oben Full Colors , Volle Farben Full HD Frame Packing , Vollständige HD-Frame-Verpackung Full Layer Stack -Slow!- , Voller Lagenstapel -langsam!- Full Side by Side Keep Uncompressed , Vollständig Seite an Seite unkomprimiert halten Full Side by Side Keep Width , Volle Seite an Seite Breite beibehalten Full Side by Uncompressed , Vollständig Seite für Seite unkomprimiert Futuristic Bleak 1 , Futuristisch düster 1 Futuristic Bleak 2 , Futuristisch düster 2 Futuristic Bleak 3 , Futuristisch düster 3 Futuristic Bleak 4 , Futuristisch düster 4 Fuzzyness , Unschärfe G'MIC Operator , G'MIC-Bediener G/M Smoothness , G/M Glattheit Gain , Gewinnen Games & Demos , Spiele und Demos Gamma Balance , Gamma-Balance Gamma Compensation , Gamma-Kompensation Gamma Equalizer , Gamma-Entzerrer Gaussian , Gauß Gear , Zahnrad Generate Random-Colors Layer , Zufallsfarbschicht erzeugen Generic Fuji Astia 100 , Generisches Fuji Astia 100 Generic Fuji Provia 100 , Generisches Fuji Provia 100 Generic Fuji Velvia 100 , Generisches Fuji Velvia 100 Generic Kodachrome 64 , Generisches Kodachrome 64 Generic Kodak Ektachrome 100 VS , Generisches Kodak Ektachrome 100 VS Generic Skin Structure , Generische Hautstruktur Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Sanfter Modus (setzt Mindesthelligkeit und minimales Rot:Blau-Verhältnis außer Kraft) Geometry , Geometrie Glamour Glow , Glamour-Glanz Global Mapping , Globale Kartierung Glow , Glühen Gmicky & Wilber (by Mahvin) , Gmicky & Wilber (von Mahvin) Gmicky (by Deevad) , Gmicky (von Deevad) Gmicky (by Mahvin) , Gmicky (von Mahvin) Gmicky (Deevad) , Gmicky (Tot) Going for a Walk , Spazieren gehen Golden , Goldene Golden (bright) , Golden (hell) Golden (fade) , Golden (verblassen) Golden (vibrant) , Golden (lebhaft) Golden Gate , Goldene Pforte Golden Night Softner 43 , Goldene Nacht Weicher 43 Golden Sony 37 , Goldene Sony 37 GoldFX - Bright Spring Breeze , GoldFX - Helle Frühlingsbrise GoldFX - Bright Summer Heat , GoldFX - Helle Sommerhitze GoldFX - Hot Summer Heat , GoldFX - Heiße Sommerhitze GoldFX - Perfect Sunset 01min , GoldFX - Perfekter Sonnenuntergang 01min GoldFX - Perfect Sunset 05min , GoldFX - Perfekter Sonnenuntergang 05min GoldFX - Perfect Sunset 10min , GoldFX - Perfekter Sonnenuntergang 10min GoldFX - Spring Breeze , GoldFX - Frühlingsbrise GoldFX - Summer Heat , GoldFX - Sommerhitze Good Morning , Guten Morgen GradienNormLinearity , GradienNormLinearität GradienNormSmoothness , GradienNormGlätte Gradient , Steigung Gradient [Corners] , Steigung [Ecken] Gradient [Custom Shape] , Farbverlauf [Benutzerdefinierte Form] Gradient [from Line] , Steigung [von der Linie] Gradient [Radial] , Steigung [Radial] Gradient [Random] , Gradient [Zufällig] Gradient Norm , Gradienten-Norm Gradient Preset , Gradienten-Voreinstellung Gradient RGB , Farbverlauf RGB Gradient Smoothness , Gradienten-Glätte Gradient Values , Gradienten-Werte Grain , Getreide Grain (Highlights) , Getreide (Highlights) Grain (Midtones) , Korn (Mitteltöne) Grain (Shadows) , Korn (Schatten) Grain Extract , Getreide-Extrakt Grain Merge , Getreide-Zusammenführung Grain Only , Nur Korn Grain Scale , Korn-Skala Grain Tone Fading , Korntonverblassung Grain Type , Getreideart Grainextract , Getreide-Extrakt Grainmerge , Getreidemüllerei Granularity , Granularität Graphic Boost , Grafische Verstärkung Graphic Colours , Grafische Farben Graphic Novel , Graphischer Roman Graphix Colors , Graphix-Farben Grayscale , Graustufen Greece , Griechenland Green , Grün Green 15 , Grün 15 Green 2025 , Grün 2025 Green Action , Grüne Aktion Green Afternoon , Grüner Nachmittag Green Blues , Grün Blau Green Conflict , Grüner Konflikt Green Day 01 , Grüner Tag 01 Green Day 02 , Grüner Tag 02 Green Factor , Grüner Faktor Green G09 , Grün G09 Green Indoor , Grün Innen Green Level , Grüne Ebene Green Light , Grünes Licht Green Mono , Grüner Mono Green Rotations , Grüne Rotationen Green Shift , Grüne Verschiebung Green Smoothness , Grüne Glätte Green Wavelength , Grüne Wellenlänge Green Yellow , Grün Gelb Green-Blue , Grün-Blau Green-Red , Grün-Rot Greenish Contrasty , Grünliche Kontraste Greenish Fade , Grünliches Verblassen Greenish Fade 1 , Grünliche Verblassung 1 Grey , Grau Greyscale , Graustufen Grid , Raster Grid [Cartesian] , Gitter [kartesisch] Grid [Hexagonal] , Gitter [Sechseckig] Grid [Triangular] , Gitter [Dreieckig] Grid Divisions , Gitternetz-Abteilungen Grid Smoothing , Gitterglättung Grid Width , Breite des Gitters Gritty , Düster Grow Alpha , Alpha wachsen lassen Guide As , Leitfaden als Guide Mix , Leitfaden-Mix Guide Recovery , Leitfaden Wiederherstellung Gum Leaf , Zahnfleisch-Blatt Gyroid , Kreisel H Cutoff , H-Abschaltung Hackmanite , Hackmanit Hair Locks , Haarschlösser HaldCLUT Filename , HaldCLUT-Dateiname Half Bottom/top , Halb Unten/Oben Half Side by Side , Halbe Seite an Seite Halftone , Halbton Halftone Shapes , Halbton-Formen Hanoi Tower , Hanoi-Turm Happyness 133 , Fröhlichkeit 133 Hard , Hart Hard Dark , Harte Dunkelheit Hard Light , Hartes Licht Hard Mix , Harte Mischung Hard Sketch , Harte Skizze Hard Teal Orange , Harte Krickente Orange Hardlight , Hartes Licht Harsh Day , Harter Tag Harsh Sunset , Harter Sonnenuntergang HDR Effect (Tone Map) , HDR-Effekt (Tone Map) Heart , Herz Hearts , Herzen Hearts (Outline) , Herzen (Umriss) Hedcut (Experimental) , Heckenschnitt (experimentell) Height , Höhe Height (%) , Höhe (%) Herderite , Herderit Hexagon , Sechseck Hexagonal , Sechseckig Hiddenite , Versteckte Seite High , Hoch High (Slower) , Hoch (langsamer) High Frequency , Hohe Frequenz High Frequency Layer , Hochfrequenzschicht High Key , Hohe Tonart High Pass , Hoher Pass High Quality , Hohe Qualität High Scale , Hohe Skala High Speed , Hohe Geschwindigkeit High Value , Hoher Wert Higher Mask Threshold (%) , Höhere Maskenschwelle (%) Highlight , Hervorheben Highlight (%) , Hervorhebung (%) Highlight Bloom , Blüte hervorheben Highlights , Höhepunkte Highlights Abstraction , Highlights Abstraktion Highlights Brightness , Highlights Helligkeit Highlights Color Intensity , Highlights Farbintensität Highlights Crossover Point , Highlights Kreuzungspunkt Highlights Hue , Highlights Farbton Highlights Lightness , Highlights Leichtigkeit Highlights Protection , Highlights Schutz Highlights Selection , Auswahl der Highlights Highlights Threshold , Highlights Schwelle Highlights Zone , Höhepunkte Zone Histogram , Histogramm Histogram Analysis , Histogramm-Analyse Histogram Transfer , Histogramm-Übertragung Hokusai: The Great Wave , Hokusai: Die Große Welle Homogeneity , Homogenität Hong Kong , Hongkong Hope Poster , Poster Hoffnung Horisontal Length , Horisontale Länge Horizon Leveling (deg) , Horizontnivellierung (Grad) Horizontal Amount , Horizontaler Betrag Horizontal Array , Horizontale Anordnung Horizontal Blur , Horizontale Unschärfe Horizontal Length , Horizontale Länge Horizontal Size (%) , Horizontale Größe (%) Horizontal Stripes , Horizontale Streifen Horizontal Tiles , Horizontale Kacheln Horizontal Warp Only , Nur Horizontalkette Horror Blue , Schreckensblau Hot , Aktuell Hot (256) , Heiß (256) Hough Sketch , Hough-Skizze Hough Transform , Hough-Transformation House , Haus Householder , Hausbesitzer HSI [all] , HSI [alle] HSI [Intensity] , HSI [Intensität] HSL [all] , HSL [alle] HSL [Lightness] , HSL [Leichtigkeit] HSL Adjustment , HSL-Anpassung HSV [all] , HSV [alle] HSV [Hue] , HSV [Farbton] HSV [Saturation] , HSV [Sättigung] HSV [Value] , HSV [Wert] HSV Select , HSV-Auswahl Hue , Farbton Hue (%) , Farbton (%) Hue Band , Farbton-Band Hue Factor , Farbton-Faktor Hue Lighten-Darken , Farbton Aufhellen-Dunkeln Hue Max (%) , Farbton Max (%) Hue Min (%) , Farbton Min (%) Hue Offset , Farbton-Versatz Hue Range , Farbton-Bereich Hue Shift , Farbton-Verschiebung Hue Smoothness , Farbton Glätte Human 2 , Menschlich 2 Human 1 , Mensch 1 Human 2 , Menschlich 2 Hybrid Median - Medium Speed Softest Output , Hybrid Median - mittlere Geschwindigkeit - weichster Ausgang Hypnosis , Hypnose Iain Noise Reduction 2019 , Iain Lärmreduzierung 2019 Iain's Fast Denoise , Iains schnelle Denoise Identity , Identität Ignore , Ignorieren Sie Ignore Current Aspect , Aktuellen Aspekt ignorieren Ilford Delta 100 , Ilford-Delta 100 Ilford Delta 3200 , Ilford-Delta 3200 Ilford Delta 400 , Ilford-Delta 400 Illuminate 2D Shape , 2D-Form ausleuchten Illustration Look , Illustration Aussehen Image , Bild Image + Background , Bild + Hintergrund Image + Colors (2 Layers) , Bild + Farben (2 Ebenen) Image + Colors (Multi-Layers) , Bild + Farben (mehrschichtig) Image Contour Dimensions , Abmessungen der Bildkontur Image Smoothness , Bildglätte Image to Grab Color from (.Png) , Bild zum Farbabzug aus (.Png) Image Weight , Bildgewicht Import Data , Daten importieren Import RGB-565 File , RGB-565-Datei importieren Impulses 5x5 , Impulse 5x5 Impulses 7x7 , Impulse 7x7 Impulses 9x9 , Impulse 9x9 Inch , Zoll Include Opacity Layer , Deckkraft-Ebene einschließen IncreaseChroma1 , ZunahmeChroma1 Increasing , Zunehmend Indoor Blue , Innenbereich Blau Industrial 33 , Industrielle 33 Influence of Color Samples (%) , Einfluss von Farbmustern (%) Information , Informationen Init. Resolution , Init. Entschließung Init. Type , Init. Geben Sie ein. Init. With High Gradients Only , Init. Nur mit hohen Gradienten Initial Density , Anfangs-Dichte Initialization , Initialisierung Ink Wash , Tintenwäsche Inner Fading , Inneres Verblassen Inner Length , Innere Länge Inner Radius , Innerer Radius Inner Radius (%) , Innerer Radius (%) Inner Shade , Innere Schattierung Inpaint [Holes] , Farbe [Löcher] Inpaint [Morphological] , Farbe [Morphologisch] Inpaint [Multi-Scale] , Farbe [Multi-Scale] Inpaint [Patch-Based] , Farbe [Patch-basiert] Inpaint [Transport-Diffusion] , Farbe [Transport-Diffusion] Input , Eingabe Input Folder , Eingabe-Ordner Input Frame Files Name , Name der Eingabe-Rahmendateien Input Guide Color , Farbe der Eingabehilfe Input Layers , Eingabe-Ebenen Input Transparency , Eingabe-Transparenz Input Type , Eingabe-Typ Insert New CLUT Layer , Neue CLUT-Schicht einfügen Inside , Innenseite Inside Color , Innenfarbe Inside-Out , Innen-Außen Instant [Consumer] (54) , Sofort [Verbraucher] (54) Instant [Pro] (68) , Sofort [Pro] (68) Intarsia , Intarsien Intensity , Intensität Intensity of Purple Fringe , Intensität des Purpursaums Interlace Horizontal , Horizontal verschachteln Interlace Vertical , Vertikal verschachteln Interpolate , Interpolieren Sie Interpolation Type , Interpolationstyp Inverse , Umgekehrt Inverse Depth Map , Karte der inversen Tiefe Inverse Radius , Inverser Radius Inverse Transform , Inverse Transformation Inversions , Umkehrungen Invert Background / Foreground , Hintergrund / Vordergrund umkehren Invert Blur , Unschärfe umkehren Invert Canvas Colors , Leinwandfarben umkehren Invert Colors , Farben umkehren Invert Image Colors , Bildfarben umkehren Invert Luminance , Leuchtdichte umkehren Invert Mask , Maske umkehren Inward , Einwärts Isophotes , Isophoten Isotropic , Isotropisch Iterations , Iterationen Japanese Maple Leaf , Japanisches Ahornblatt Jawbreaker , Kieferbrecher Jet (256) , Strahl (256) JPEG Artefacts , JPEG-Artefakte JPEG Smooth , JPEG-glatt Just Peachy , Nur Pfirsich K-Factor , K-Faktor K-Tone Vintage Kodachrome , K-Ton-Vintage-Kodachrome Kaleidoscope [Blended] , Kaleidoskop [gemischt] Kaleidoscope [Polar] , Kaleidoskop [Polar] Kaleidoscope [Symmetry] , Kaleidoskop [Symmetrie] Kandinsky: Squares with Concentric Circles , Kandinsky: Quadrate mit konzentrischen Kreisen Kandinsky: Yellow-Red-Blue , Kandinsky: Gelb-Rot-Blau Keep , behalten Keep Aspect Ratio , Aspect Ratio beibehalten Keep Base Layer as Input Background , Basisschicht als Eingabehintergrund beibehalten Keep Borders Square , Grenzen im Quadrat halten Keep Color Channels , Farbkanäle beibehalten Keep Colors , Farben behalten Keep Detail , Details behalten Keep Detail Layer Separate , Detailebene getrennt halten Keep Iterations as Different Layers , Iterationen als verschiedene Schichten beibehalten Keep Layers Separate , Ebenen getrennt halten Keep Original Image Size , Originalbildgröße beibehalten Keep Original Layer , Originalebene beibehalten Keep Tiles Square , Fliesen quadratisch halten Keep Transparency in Output , Transparenz bei der Ausgabe bewahren Kernel Multiplier , Kernel-Vervielfacher Kernel Type , Kernel-Typ Key Factor , Schlüsselfaktor Key Frame Rate , Schlüssel-Bildfrequenz Key Shift , Taste Shift Key Smoothness , Schlüssel-Glätte Keypoint Influence (%) , Schlüsselfaktor Einfluss (%) Kitaoka Spin Illusion , Kitaoka-Spin-Illusion Klee: Death and Fire , Klee: Tod und Feuer Klee: In the Style of Kairouan , Klee: Im Stil von Kairouan Klee: Oriental Pleasure Garden Anagoria , Klee: Orientalischer Lustgarten Anagoria Klee: Polyphony 2 , Klee: Polyphonie 2 Klee: Red Waistcoat , Klee: Rote Weste Klimt: The Kiss , Klimt: Der Kuss Kodak 2383 (Cuspclip) , Kodak 2383 (Halsklemme) Kodak Elite Color 200 , Kodak Elite-Farbe 200 Kodak HIE (HS Infra) , Kodak HIE (HS-Infra) Kodak Portra 160 , Kodak-Portrait 160 Kodak Portra 160 + , Kodak-Porträt 160 + Kodak Portra 160 ++ , Kodak-Porträt 160 ++ Kodak Portra 160 - , Kodak-Portrait 160 - Kodak Portra 160 NC , Kodak Hochformat 160 NC Kodak Portra 160 NC + , Kodak Hochformat 160 NC + Kodak Portra 160 NC ++ , Kodak Hochformat 160 NC ++ Kodak Portra 160 NC - , Kodak Portrait 160 NC - Kodak Portra 160 VC , Kodak Hochformat 160 VC Kodak Portra 160 VC + , Kodak Portrait 160 VC + Kodak Portra 160 VC ++ , Kodak Hochformat 160 VC ++ Kodak Portra 160 VC - , Kodak Portrait 160 VC - Kodak Portra 400 , Kodak-Portrait 400 Kodak Portra 400 + , Kodak-Portrait 400 + Kodak Portra 400 ++ , Kodak-Portrait 400 ++ Kodak Portra 400 - , Kodak-Portrait 400 - Kodak Portra 400 NC , Kodak Hochformat 400 NC Kodak Portra 400 NC + , Kodak Hochformat 400 NC + Kodak Portra 400 NC ++ , Kodak Hochformat 400 NC ++ Kodak Portra 400 NC - , Kodak Portrait 400 NC - Kodak Portra 400 UC , Kodak Hochformat 400 UC Kodak Portra 400 UC + , Kodak Portrait 400 UC + Kodak Portra 400 UC ++ , Kodak Portrait 400 UC ++ Kodak Portra 400 UC - , Kodak Portrait 400 UC - Kodak Portra 400 VC , Kodak Hochformat 400 VC Kodak Portra 400 VC + , Kodak-Portrait 400 VC + Kodak Portra 400 VC ++ , Kodak Hochformat 400 VC ++ Kodak Portra 400 VC - , Kodak Portrait 400 VC - Kodak Portra 800 , Kodak-Portrait 800 Kodak Portra 800 + , Kodak-Portrait 800 + Kodak Portra 800 ++ , Kodak-Portrait 800 ++ Kodak Portra 800 - , Kodak Portrait 800 - Kodak Portra 800 HC , Kodak Hochformat 800 HC Kuwahara on Painting , Kuwahara über Malerei Lab , Labor Lab (Chroma Only) , Labor (nur Chroma) Lab (Distinct) , Labor (unterscheidbar) Lab (Luma Only) , Labor (nur Luma) Lab (Luma/Chroma) , Labor (Luma/Chroma) Lab (Mixed) , Labor (gemischt) Lab [a-Chrominance] , Labor [a-Chrominance] Lab [ab-Chrominances] , Labor [ab-Chrominanzen] Lab [all] , Labor [alle] Lab [b-Chrominance] , Labor [b-Chrominance] Lab [Lightness] , Labor [Leichtigkeit] LAB-Lightness , LAB-Leichtigkeit Landscape , Landschaft Landscape-1 , Landschaft-1 Landscape-10 , Landschaft-10 Landscape-2 , Landschaft-2 Landscape-3 , Landschaft-3 Landscape-4 , Landschaft-4 Landscape-5 , Landschaft-5 Landscape-6 , Landschaft-6 Landscape-7 , Landschaft-7 Landscape-8 , Landschaft-8 Landscape-9 , Landschaft-9 Laplacian , Laplacianisch Large , Groß Large Noise , Großer Lärm Last , Letzte Last Frame , Letzter Frame Late Afternoon Wanderlust , Fernweh am späten Nachmittag Late Sunset , Später Sonnenuntergang Lava Lamp , Lava-Lampe Layer , Schicht Layer Processing , Verarbeitung von Schichten Layers to Tiles , Ebenen zu Kacheln Lch [all] , Lch [alle] Lch [ch-Chrominances] , Lch [ch-Chrominanzen] Lch [h-Chrominance] , Lch [h-Chrominanz] Leaf , Blatt Leaf Color , Blattfarbe Leaf Opacity (%) , Blatttrübung (%) Leak Type , Leck-Typ Left , Links Left Foreground , Links Vordergrund Left / Right Blur (%) , Links / Rechts Unschärfe (%) Left and Right Background , Linker und rechter Hintergrund Left and Right Foreground , Linker und rechter Vordergrund Left and Right Image Streams , Linker und rechter Bildstrom Left Diagonal Foreground , Links Diagonal Vordergrund Left Foreground , Links Vordergrund Left Position , Linke Position Left Side Orientation , Orientierung auf der linken Seite Left Slope , Linke Neigung Left Stream Only , Nur linker Stream Length , Länge Lenticular Density LPI , Linsenraster-Dichte LPI Lenticular Orientation , Lentikulare Orientierung Lenticular Print , Lentikulardruck Level , Ebene Level Frequency , Niveau Häufigkeit Levels , Ebenen Life Giving Tree , Lebensspendender Baum Lifestyle & Commercial-1 , Lebensstil & Kommerziell-1 Lifestyle & Commercial-10 , Lifestyle & Kommerziell-10 Lifestyle & Commercial-2 , Lifestyle & Kommerziell-2 Lifestyle & Commercial-3 , Lifestyle & Kommerziell-3 Lifestyle & Commercial-4 , Lifestyle & Kommerziell-4 Lifestyle & Commercial-5 , Lifestyle & Kommerziell-5 Lifestyle & Commercial-6 , Lifestyle & Kommerziell-6 Lifestyle & Commercial-7 , Lifestyle & Kommerziell-7 Lifestyle & Commercial-8 , Lifestyle & Kommerziell-8 Lifestyle & Commercial-9 , Lifestyle & Kommerziell-9 Light , Licht Light (blown) , Licht (geblasen) Light Angle , Lichtwinkel Light Color , Helle Farbe Light Direction , Licht-Richtung Light Effect , Lichtwirkung Light Glow , Lichtglühen Light Grey , Hellgrau Light Leaks , Leichte Lecks Light Motive , Licht-Motiv Light Patch , Leichter Fleck Light Rays , Lichtstrahlen Light Smoothness , Leichte Glätte Light Strength , Lichtfestigkeit Light Type , Lichttyp Light-X , Licht-X Light-Y , Hell-Y Light-Z , Licht-Z Lighten , aufhellen Lighten Edges , Kanten aufhellen Lighter , Leichter Lighting , Beleuchtung Lighting Angle , Beleuchtungswinkel Lightness , Leichtigkeit Lightness (%) , Helligkeit (%) Lightness Factor , Helligkeits-Faktor Lightness Level , Helligkeitsstufe Lightness Max (%) , Helligkeit Max (%) Lightness Min (%) , Helligkeit Min (%) Lightness Shift , Helligkeits-Verschiebung Lightness Smoothness , Leichtigkeit Glätte Lightning , Blitz Lighty Smooth , Leicht glatt Limit Hue Range , Farbtonbereich begrenzen Line , Zeile Line Opacity , Linien-Opazität Line Precision , Linienpräzision Linear Burn , Lineare Verbrennung Linear Light , Lineares Licht Linear RGB [All] , Linear RGB [Alle] Linear RGB [Blue] , Linear RGB [Blau] Linear RGB [Green] , Linear RGB [Grün] Linear RGB [Red] , Linear RGB [Rot] Linearity , Linearität Lineart , Linienart Lineart + Color Spots , Lineart + Farbflecken Lineart + Color Spots + Extrapolated Colors , Lineart + Farbflecken + extrapolierte Farben Lineart + Colors , Lineart + Farben Lineart + Extrapolated Colors , Lineart + extrapolierte Farben Lines , Zeilen Lines (256) , Zeilen (256) Linify , Linifizieren Lion , Löwe Lissajous [Animated] , Lissajous [animiert] Lissajous Spiral , Lissajous-Spirale Little , Kleine Little Blue , Klein Blau Little Cyan , Kleines Zyan Little Green , Kleines Grün Little Key , Kleiner Schlüssel Little Magenta , Kleines Magenta Little Red , Kleiner Roter Little Yellow , Kleines Gelb LN Amplititude , LN-Amplitude LN Amplitude , LN-Amplitude LN Average-Smoothness , LN Durchschnitts-Glätte LN Neightborhood-Smoothness , LN-Nachbarschaft-Glätte LN Size , LN Größe Local Normalisation , Lokale Normalisierung Local Contrast , Lokaler Kontrast Local Contrast Effect , Lokaler Kontrast-Effekt Local Contrast Enhance , Lokale Kontrastverstärkung Local Contrast Enhancement , Lokale Kontrastverbesserung Local Contrast Style , Lokaler Kontraststil Local Detail Enhancer , Lokale Detailverbesserung Local Normalization , Lokale Normalisierung Local Orientation , Lokale Orientierung Local Processing , Lokale Verarbeitung Local Similarity Mask , Maske für lokale Ähnlichkeit Local Variance Normalization , Normalisierung der lokalen Varianz Lock Return Scaling to Source Layer , Sperre Rückgabe Skalierung zur Quellschicht Lock Source , Quelle sperren Lock Uniform Sampling , Einheitliche Probenahme sperren Log(z) , Protokoll(z) Logarithmic Distortion , Logarithmische Verzerrung Logarithmic Distortion Axis Combination for X-Axis , Logarithmische Verzerrungsachsenkombination für die X-Achse Logarithmic Distortion Axis Combination for Y-Axis , Logarithmische Verzerrungsachsenkombination für die Y-Achse Logarithmic Distortion X-Axis Direction , Logarithmische Verzerrung X-Achsen-Richtung Logarithmic Distortion Y-Axis Direction , Logarithmische Verzerrung Y-Achsenrichtung Lomography Redscale 100 , Lomographie Neuskalierung 100 Lomography X-Pro Slide 200 , Lomographie X-Pro-Dia 200 Lookup , Nachschlagen Lookup Factor , Lookup-Faktor Lookup Size , Lookup-Größe Loop Method , Schleifen-Methode Low , Niedrig Low Bias , Niedrige Verzerrung Low Contrast Blue , Blau mit niedrigem Kontrast Low Frequency , Niedrige Frequenz Low Frequency Layer , Niederfrequenz-Schicht Low Key , Niedrige Tonart Low Key 01 , Niedriger Schlüssel 01 Low Scale , Niedrige Skala Low Value , Niedriger Wert Lower Layer Is the Bottom Layer for All Blends , Die untere Schicht ist die unterste Schicht für alle Mischungen Lower Mask Threshold (%) , Unterer Masken-Schwellenwert (%) Lower Side Orientation , Orientierung auf der unteren Seite Lowercase Letters , Kleinbuchstaben Lowlights Crossover Point , Lowlights-Übergabepunkt Lowres CLUT , Lowres-CLUT Lucky 64 , Glückliche 64 Luma Noise , Luma-Lärm Luminance , Leuchtdichte Luminance Factor , Leuchtdichte-Faktor Luminance Level , Leuchtdichtepegel Luminance Only , Nur Leuchtdichte Luminance Only (Lab) , Nur Leuchtdichte (Labor) Luminance Only (YCbCr) , Nur Leuchtdichte (YCbCr) Luminance Shift , Luminanzverschiebung Luminance Smoothness , Leuchtdichte-Glätte Luminosity from Color , Leuchtkraft aus Farbe Luminosity Type , Leuchtkraft-Typ Lush Green Summer , Üppig grüner Sommer LUTs Pack , LUTs-Paket Lylejk's Painting , Lylejks Gemälde Magenta Coffee , Magenta-Kaffee Magenta Day , Magenta-Tag Magenta Day 01 , Magenta Tag 01 Magenta Dream , Magenta-Traum Magenta Factor , Magenta-Faktor Magenta Shift , Magenta-Verschiebung Magenta Smoothness , Magenta-Glätte Magenta Yellow , Magenta Gelb Magenta-Yellow , Magenta-Gelb Magic Details , Magische Details Magnitude / Phase , Ausmaß/Phase Mail , E-Mail Make Hue Depends on Region Size , Farbton von der Größe der Region abhängig machen Make Seamless [Diffusion] , Nahtlos machen [Diffusion] Make Seamless [Patch-Based] , Nahtlos machen [Patch-basiert] Make Squiggly , Schnörkel machen Make Up , Make-up Mandelbrot - Julia Sets , Mandelbrot - Julia-Mengen Mandelbrot Explorer , Mandelbrot-Explorer Manual , Handbuch Manual Controls , Manuelle Steuerung Map , Karte Map Tones , Karten-Töne Mapping , Kartierung Marble , Marmor Margin (%) , Marge (%) Mascot Image , Maskottchen-Bild Masculine , Männlich Mask , Maske Mask + Background , Maske + Hintergrund Mask as Bottom Layer , Maske als unterste Schicht Mask By , Maske von Mask Color , Maskenfarbe Mask Contrast , Masken-Kontrast Mask Creator , Masken-Schöpfer Mask Dilation , Masken-Dilatation Mask Size , Maskengröße Mask Smoothness (%) , Maske Glätte (%) Mask Type , Maskentyp Masked Image , Maskiertes Bild Masking , Maskierung Match Colors With , Farben abgleichen mit Matching Precision (Smaller Is Faster) , Matching-Präzision (kleiner ist schneller) Math Symbols , Mathematische Symbole Max Angle , Max Winkel Max Angle Deviation (deg) , Maximale Winkelabweichung (Grad) Max Area , Max Bereich Max Curve , Max-Kurve Max Cut (%) , Max Schnitt (%) Max Iterations , Max Iterationen Max Length (%) , Maximale Länge (%) Max Offset (%) , Maximale Verrechnung (%) Max Threshold , Max Schwelle Maximal Area , Maximale Fläche Maximal Color Saturation , Maximale Farbsättigung Maximal Highlights , Maximale Höhepunkte Maximal Radius , Maximaler Radius Maximal Seams per Iteration (%) , Maximale Nähte pro Iteration (%) Maximal Size , Maximale Größe Maximal Value , Maximaler Wert Maximum Dimension , Maximale Abmessung Maximum Image Size , Maximale Bildgröße Maximum Number of Image Colors , Maximale Anzahl von Bildfarben Maximum Number of Output Layers , Maximale Anzahl von Ausgabeschichten Maximum Red:Blue Ratio in the Fringe , Maximales Rot-Blau-Verhältnis im Randbereich Maximum Saturation , Maximale Sättigung Maximum Size Factor , Maximaler Größenfaktor Maximum Value , Maximaler Wert Maze , Labyrinth Maze Type , Labyrinth-Typ Mean Color , Mittlere Farbe Mean Curvature , Mittlere Krümmung Median (beware: Memory-Consuming!) , Median (Vorsicht: speicherfressend!) Median Radius , Medianer Radius Medium 3 , Mittel 3 Medium Details Smoothness , Mittlere Details Glätte Medium Details Threshold , Schwelle für mittlere Details Medium Frequency Layer , Mittelfrequenz-Schicht Medium Scale (Original) , Mittlere Skala (Original) Medium Scale (Smoothed) , Mittlere Skala (geglättet) Memories , Erinnerungen Merge Brightness / Colors , Helligkeit/Farben zusammenführen Merge Layers? , Schichten zusammenführen? Merging Mode , Zusammenführungsmodus Merging Option , Zusammenführungs-Option Merging Steps , Schritte zusammenführen Mess with Bits , Mit Bits verwirren Metal , Metall Metallic Look , Metallisches Aussehen Method , Methode Metric , Metrisch Metropolis , Metropole Micro/macro Details Adjusted , Mikro/Makro-Details angepasst Mid , Mitte Mid Grey , Mittelgrau Mid Noise , Mittleres Rauschen Mid Offset , Mittlerer Versatz Mid Tone Contrast , Mittelton-Kontrast Mid-Dark Grey , Mittel-Dunkelgrau Mid-Light Grey , Mittel-Hellgrau Mid-Tones , Mitteltöne Middle Grey , Mittelgrau Middle Scale , Mittlere Skala Midpoint , Mittelpunkt Midtones Brightness , Helligkeit der Mitteltöne Midtones Color Intensity , Mitteltöne Farbintensität Midtones Hue , Mitteltöne Farbton Mighty Details , Mächtige Details Min Angle Deviation (deg) , Min. Winkelabweichung (Grad) Min Area % , Min Bereich % Min Cut (%) , Min Schnitt (%) Min Length (%) , Min Länge (%) Min Offset (%) , Min-Versatz (%) Min Threshold , Min-Schwelle Mineral Mosaic , Mineral-Mosaik Minesweeper , Minensucher Minimal Area , Minimale Fläche Minimal Area (%) , Minimale Fläche (%) Minimal Color Intensity , Minimale Farbintensität Minimal Highlights , Minimale Höhepunkte Minimal Path , Minimaler Pfad Minimal Radius , Minimaler Radius Minimal Region Area , Minimales Gebiet der Region Minimal Scale (%) , Minimale Skala (%) Minimal Shape Area , Minimaler Formbereich Minimal Size , Minimale Größe Minimal Size (%) , Minimale Größe (%) Minimal Stroke Length , Minimale Hublänge Minimal Value , Minimaler Wert Minimalist Caffeination , Minimalistische Koffeinierung Minimum Brightness , Minimale Helligkeit Minimum Red:Blue Ratio in the Fringe , Mindestverhältnis Rot:Blau im Randbereich Mirror , Spiegel Mirror Effect , Spiegeleffekt Mirror X , Spiegel X Mirror Y , Spiegel Y Mirror-X , Spiegel-X Mirror-XY , Spiegel-XY Mirror-Y , Spiegel-Y Mix , Mischen Mixed Mode , Gemischter Modus Mixer [CMYK] , Mischpult [CMYK] Mixer [HSV] , Mischpult [HSV] Mixer [Lab] , Mischer [Labor] Mixer [PCA] , Mischpult [PCA] Mixer [RGB] , Mischpult [RGB] Mixer [YCbCr] , Mischpult [YCbCr] Mixer Mode , Mischer-Modus Mixer Style , Mischpult-Stil Mode , Modus Modern Film , Moderner Film Modulo Value , Modulo-Wert Moire Removal , Entfernung von Moiré Moire Removal Method , Methode zur Entfernung von Moiré Mondrian: Composition in Red-Yellow-Blue , Mondrian: Komposition in Rot-Gelb-Blau Mondrian: Evening; Red Tree , Mondrian: Abend; Roter Baum Mondrian: Gray Tree , Mondrian: Grauer Baum Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore in der Abenddämmerung Monet: Water-Lily Pond , Monet: Seerosenteich Monet: Wheatstacks - End of Summer , Monet: Weizenstapel - Ende des Sommers Monkey , Affe Mono Tinted , Mono Getönt Mono+Ye , Mono+Ja Mono-Directional , Monodirektional Monochrome , Monochrom Monochrome 1 , Monochrom 1 Monochrome 2 , Monochrom 2 Montage Type , Montage-Typ Moody , Launisch Moody-1 , Launisch-1 Moody-10 , Stimmung - 10 Moody-2 , Launisch-2 Moody-3 , Stimmung-3 Moody-4 , Stimmung - 4 Moody-5 , Stimmung-5 Moody-6 , Stimmung - 6 Moody-7 , Stimmung - 7 Moody-8 , Stimmung - 8 Moody-9 , Stimmung-9 Moon2panorama , Mond2Panorama Moonlight , Mondschein Moonlight 01 , Mondschein 01 Moonrise , Mondaufgang Morning 6 , Vormittag 6 Morph [Interactive] , Morph [Interaktiv] Morph Layers , Morph-Ebenen Morphological - Fastest Sharpest Output , Morphologisch - schnellste und schärfste Ausgabe Morphological Closing , Morphologischer Abschluss Morphological Filter , Morphologischer Filter Morphology Painting , Morphologie-Malerei Morphology Strength , Morphologie-Stärke MorphoStrenght , MorphoStärke Mosaic , Mosaik Most , Die meisten Mostly Blue , Meistens blau Motion Analyzer , Bewegungs-Analysator Motion-Compensated , Bewegungskompensiert Much , Vieles Much Blue , Viel Blau Much Green , Viel Grün Much Red , Viel Rot Multi-Layer Etch , Mehrschicht-Ätzen Multiple Colored Shapes Over Transp. BG , Mehrere farbige Formen über Transp. BG Multiple Layers , Mehrere Schichten Multiplier , Multiplikator Multiply , Vervielfachen Sie Multiscale Operator , Multiskalen-Operator Munch: The Scream , Munch: Der Schrei Mute Shift , Stumme Verschiebung Muted 01 , Gedämpft 01 Muted Fade , Stummes Ausblenden Mystic Purple Sunset , Mystischer violetter Sonnenuntergang Natural (vivid) , Natürlich (lebendig) Nature & Wildlife-1 , Natur und Tierwelt-1 Nature & Wildlife-10 , Natur und Tierwelt - 10 Nature & Wildlife-2 , Natur und Tierwelt-2 Nature & Wildlife-3 , Natur und Tierwelt-3 Nature & Wildlife-4 , Natur und Tierwelt-4 Nature & Wildlife-5 , Natur und Tierwelt - 5 Nature & Wildlife-6 , Natur und Tierwelt - 6 Nature & Wildlife-7 , Natur und Tierwelt - 7 Nature & Wildlife-8 , Natur und Tierwelt - 8 Nature & Wildlife-9 , Natur und Tierwelt - 9 Nb Circles Surrounding , Nb Umgebende Kreise Near Black , Bei Schwarz Nearest , Nächste Nearest Neighbor , Nächster Nachbar Neat Merge , Sauber zusammenführen Nebulous , Nebulös Negate , verneinen Negation , Verneinung Negative , Negativ Negative [Color] (13) , Negativ [Farbe] (13) Negative [New] (39) , Negativ [Neu] (39) Negative [Old] (44) , Negativ [alt] (44) Negative Color Abstraction , Negative Farbabstraktion Negative Colors , Negative Farben Negative Effect , Negative Auswirkung Neighborhood Size (%) , Größe der Nachbarschaft (%) Neighborhood Smoothness , Glätte in der Nachbarschaft Neon Lightning , Neon-Blitz Neutral Color , Neutrale Farbe Neutral Teal Orange , Neutrale Krickente Orange Neutral Warm Fade , Neutrales Warm-Fading New Curves [Interactive] , Neue Kurven [Interaktiv] Newspaper , Zeitung Newton Fractal , Newton-Fraktal Night 01 , Nacht 01 Night Blade 4 , Nachtblatt 4 Night From Day , Nacht vom Tag Night King 141 , Nachtkönig 141 Night Spy , Nacht-Spion Nine Layers , Neun Schichten No Masking , Keine Maskierung No Recovery , Keine Wiederherstellung No Rescaling , Keine Neuskalierung No Transparency , Keine Transparenz No-Skip , Kein Überspringen Noise , Lärm Noise [Additive] , Lärm [Zusatzstoff] Noise [Perlin] , Lärm [Perlin] Noise [Spread] , Lärm [Ausbreitung] Noise A , Lärm A Noise B , Lärm B Noise C , Lärm C Noise D , Lärm D Noise Level , Lärmpegel Noise Scale , Lärm-Skala Noise Type , Lärm-Typ Non / No , Nicht / Nein Non-Linearity , Nicht-Linearität Non-Rigid , Nicht starr None , Keine None (Allows Multi-Layers) , Keine (erlaubt Multi-Layer) None- Skip , Nicht- Überspringen Norm Type , Norm-Typ Normal Map , Normale Karte Normal Output , Normale Ausgabe Normalization , Normalisierung Normalize , normalisieren Normalize Brightness , Helligkeit normalisieren Normalize Colors , Farben normalisieren Normalize Illumination , Beleuchtung normalisieren Normalize Input , Eingabe normalisieren Normalize Luma , Luma normalisieren Normalize Scales , Skalen normalisieren Nostalgia Honey , Nostalgie-Honig Nostalgic , Nostalgisch Nothing , Nichts Number , Nummer Number of Added Frames , Anzahl der hinzugefügten Frames Number of Angles , Anzahl von Winkeln Number of Clusters , Anzahl von Clustern Number of Colors , Anzahl der Farben Number of Frames , Anzahl der Frames Number of Inter-Frames , Anzahl der Inter-Frames Number of Iterations per Scale , Anzahl der Iterationen pro Skala Number of Key-Frames , Anzahl von Key-Frames Number of Levels , Anzahl der Ebenen Number of Matches (Coarsest) , Anzahl der Spiele (gröbste) Number of Matches (Finest) , Anzahl der Spiele (feinste) Number of Orientations , Anzahl der Orientierungen Number Of Rays , Anzahl der Strahlen Number of Scales , Anzahl der Skalen Number of Sizes , Anzahl der Größen Number of Streaks , Anzahl der Streifen Number of Teeth , Anzahl der Zähne Number of Tones , Anzahl der Töne Object Animation , Objekt-Animation Object Ratio , Objekt-Verhältnis Object Tolerance , Objekt-Toleranz Octagon , Achteck Octagonal , Achteckig Octaves , Oktaven Octogon , Oktogon Oddness (%) , Seltsamkeit (%) Off , Aus Offset (%) , Aufrechnung (%) Offset Angle Rays Layer 1 , Versetzte Winkelstrahlen Schicht 1 Offset Angle Rays Layer 2 , Versetzte Winkelstrahlen Schicht 2 Old Method - Slowest , Alte Methode - Langsamste Old Photograph , Alte Fotografie Old West , Alter Westen Old-Movie Stripes , Alt-Film-Streifen ON1 Photography (90) , ON1 Fotografie (90) Once Upon a Time , Es war einmal One Layer , Eine Schicht One Layer (Horizontal) , Eine Schicht (horizontal) One Layer (Vertical) , Eine Schicht (vertikal) One Layer per Single Color , Eine Schicht pro Einzelfarbe One Layer per Single Region , Eine Schicht pro einzelne Region One Thread , Ein Faden Only Leafs , Nur Blätter Only Red , Nur Rot Only Red and Blue , Nur Rot und Blau Opacity , Deckkraft Opacity (%) , Opazität (%) Opacity as Heightmap , Opazität als Höhenkarte Opacity Contours , Deckkraft-Konturen Opacity Factor , Opazitätsfaktor Opacity Gain , Opazitätsgewinn Opacity Gamma , Opazität Gamma Opacity Snowflake , Opazität Schneeflocke Opacity Threshold (%) , Opazitäts-Schwellenwert (%) Opaque Pixels , Undurchsichtige Pixel Opaque Regions on Top Layer , Opake Regionen auf der obersten Ebene Opaque Skin , Undurchsichtige Haut Open Interactive Preview , Interaktive Vorschau öffnen Opening , Eröffnung Operation Yellow , Operation Gelb Operator , Betreiber Opposing , Gegenüber Optimized Lateral Inhibition , Optimierte seitliche Hemmung Orange Dark 4 , Orange-Dunkel 4 Orange Dark 7 , Orange-Dunkel 7 Orange Dark Look , Orange-Dunkel-Look Orange Tone , Orange-Ton Orange Underexposed , Orange Unterbelichtet Oranges , Orangen Order , Bestellung Order By , Bestellen nach Orientation , Orientierung Orientation Coherence , Orientierungskohärenz Orientation Only , Nur Orientierung Orientations , Orientierungen Original - (Opening + Closing)/2 , Original - (Eröffnung + Schließung)/2 Original - Opening , Original - Eröffnung Orthogonal Radius , Orthogonaler Radius Orton Glow , Orton-Glühen Orwo NP20-GDR , Orwo NP20-DDR Others (69) , Andere (69) Ouline Color , Ouline Farbe Outer , Äußeres Outer Fading , Äußeres Verblassen Outer Length , Äußere Länge Outer Radius , Äußerer Radius Outline , Gliederung Outline (%) , Gliederung (%) Outline Color , Umrissfarbe Outline Contrast , Umriss-Kontrast Outline Opacity , Umriss-Opazität Outline Size , Umriss-Größe Outline Smoothness , Glattheit des Umrisses Outline Thickness , Dicke der Kontur Outlined , Umriss Output , Ausgabe Output As , Ausgabe als Output as Files , Ausgabe als Dateien Output as Frames , Ausgabe als Frames Output as Multiple Layers , Ausgabe als mehrere Ebenen Output as Separate Layers , Ausgabe als getrennte Ebenen Output Ascii File , Ascii-Datei ausgeben Output Chroma NR , Ausgabe Chroma NR Output CLUT , Ausgabe CLUT Output CLUT Resolution , Ausgabe CLUT Auflösung Output Coordinates File , Ausgabe-Koordinaten-Datei Output Corresponding CLUT , Ausgabe Entsprechende CLUT Output Directory , Ausgabe-Verzeichnis Output Each Piece on a Different Layer , Ausgabe jedes Teils auf einer anderen Ebene Output Filename , Ausgabe-Dateiname Output Files , Ausgabe-Dateien Output Folder , Ausgabe-Ordner Output Format , Ausgabeformat Output Frames , Ausgabe-Frames Output Height , Ausgabe-Höhe Output HTML File , HTML-Datei ausgeben Output Layers , Ausgabe-Ebenen Output Mode , Ausgabe-Modus Output Multiple Layers , Mehrere Ebenen ausgeben Output Preset as a HaldCLUT Layer , Ausgabevoreinstellung als HaldCLUT-Schicht Output Region Delimiters , Ausgabe-Regionsbegrenzer Output Saturation , Ausgabe-Sättigung Output Sharpening , Schärfen der Ausgabe Output Stroke Layer On , Ausgabestroke-Ebene Ein Output to Folder , Ausgabe in Ordner Output Type , Ausgabe-Typ Output Width , Ausgabe-Breite Outside , Außerhalb Outside Color , Außenfarbe Outside-In , Außen-Innen Outward , Auswärts Overall Blur , Allgemeine Unschärfe Overall Contrast , Gesamtkontrast Overall Lightness , Allgemeine Leichtigkeit Overlap (%) , Überlappung (%) Overlay , Überlagerung Oversample , Überbeispiel Overshoot , Überschwingen P''(z) , P'''(z) Padding (px) , Polsterung (px) Paint , Malen Paint Daub , Farbe Daub Paint Effect , Farbeffekt Paint Splat , Streichen Splat Painter's Edge Protection Flow , Malerischer Kantenschutz-Fluss Painter's Smoothness , Geschmeidigkeit des Malers Painter's Touch Sharpness , Berührungsschärfe des Malers Painting , Malerei Painting Opacity , Deckkraft von Gemälden Paintstroke , Farbschlag Paper Texture , Papier-Textur Parallel Processing , Parallele Verarbeitung Parrots , Papageien Passing By , Vorübergehend Pastell Art , Pastell-Kunst Patch , Aufnäher Patch Measure , Patch-Maß Patch Size , Patch-Größe Patch Size for Analysis , Patch-Größe für die Analyse Patch Size for Synthesis , Patch-Größe für Synthese Patch Size for Synthesis (Final) , Patch-Größe für Synthese (endgültig) Patch Smoothness , Patch-Glätte Patch Variance , Patch-Abweichung Pattern , Muster Pattern Angle , Muster-Winkel Pattern Height , Muster-Höhe Pattern Type , Muster-Typ Pattern Variation 1 , Muster-Variation 1 Pattern Variation 2 , Muster-Variation 2 Pattern Variation 3 , Muster-Variation 3 Pattern Weight , Gewicht des Musters Pattern Width , Breite des Musters Paw , Pfote PCA Transfer , PCA-Übertragung Pea Soup , Erbsensuppe Pen Drawing , Stift-Zeichnung Penalize Patch Repetitions , Patch-Wiederholungen bestrafen Pencil , Bleistift Pencil Amplitude , Bleistift-Amplitude Pencil Portrait , Bleistift-Portrait Pencil Size , Bleistift-Größe Pencil Smoother Edge Protection , Kantenschutz mit Bleistiftglätter Pencil Smoother Sharpness , Bleistift Glättende Schärfe Pencil Smoother Smoothness , Bleistift Glättende Glätte Pencil Type , Bleistift-Typ Pencils , Stifte Peppers , Paprika Percent of Image Half-Hypotenuse (%) , Prozent der Bild-Halb-Hypotenuse (%) Periodic , Periodisch Periodic Dots , Periodische Punkte Periodicity , Periodizität Perserve Luminance , Luminanz erhalten Perspective , Perspektive Perturbation , Störeinflüsse Petals , Blütenblätter Phone , Telefon PhotoComix Preset , PhotoComix-Voreinstellung Photoillustration , Fotoillustration Picasso: Seated Woman , Picasso: Sitzende Frau Picasso: The Reservoir - Horta De Ebro , Picasso: Der Stausee - Horta De Ebro PictureFX (19) , BildFX (19) Piece Complexity , Komplexität des Stücks Piece Size (px) , Stückgröße (px) Pin Light , Pin-Licht Pink Fade , Rosa Verblassen Pixel Sort , Pixel-Sortierung Pixel Values , Pixel-Werte Placement , Platzierung Plane , Flugzeug Plasma Effect , Plasma-Effekt Plot Type , Parzellentyp Point #0 , Punkt #0 Point #1 , Punkt #1 Point #2 , Punkt #2 Point #3 , Punkt #3 Point 1 , Punkt 1 Point 2 , Punkt 2 Points , Punkte Polar Transform , Polartransformation Polaroid 665 Negative , Polaroid 665 Negativ Polaroid 665 Negative + , Polaroid 665 Negativ + Polaroid 665 Negative - , Polaroid 665 Negativ - Polaroid 665 Negative HC , Polaroid 665 Negativ HC Polaroid 669 Cold , Polaroid 669 Kalt Polaroid 669 Cold + , Polaroid 669 Kalt + Polaroid 669 Cold - , Polaroid 669 Kalt - Polaroid 669 Cold -- , Polaroid 669 Kalt -- Polaroid 690 Cold , Polaroid 690 Kalt Polaroid 690 Cold + , Polaroid 690 Kalt + Polaroid 690 Cold ++ , Polaroid 690 Kalt ++ Polaroid 690 Cold - , Polaroid 690 Kalt - Polaroid 690 Cold -- , Polaroid 690 Kalt -- Polaroid Polachrome , Polaroid-Polachrom Polaroid PX-100UV+ Cold , Polaroid PX-100UV+ Kalt Polaroid PX-100UV+ Cold + , Polaroid PX-100UV+ Kalt + Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ Kalt ++ Polaroid PX-100UV+ Cold +++ , Polaroid PX-100UV+ Kalt +++ Polaroid PX-100UV+ Cold - , Polaroid PX-100UV+ Kalt - Polaroid PX-100UV+ Cold -- , Polaroid PX-100UV+ Kalt -- Polaroid PX-680 Cold , Polaroid PX-680 Kalt Polaroid PX-680 Cold + , Polaroid PX-680 Kalt + Polaroid PX-680 Cold ++ , Polaroid PX-680 Kalt ++ Polaroid PX-680 Cold ++a , Polaroid PX-680 Kalt ++a Polaroid PX-680 Cold - , Polaroid PX-680 Kalt - Polaroid PX-680 Cold -- , Polaroid PX-680 Kalt -- Polaroid PX-70 Cold , Polaroid PX-70 Kalt Polaroid PX-70 Cold + , Polaroid PX-70 Kalt + Polaroid PX-70 Cold ++ , Polaroid PX-70 Kalt ++ Polaroid PX-70 Cold - , Polaroid PX-70 Kalt - Polaroid PX-70 Cold -- , Polaroid PX-70 Kalt -- Polaroid Time Zero (Expired) , Polaroid-Zeit Null (abgelaufen) Polaroid Time Zero (Expired) + , Polaroidzeit Null (abgelaufen) + Polaroid Time Zero (Expired) ++ , Polaroid-Zeit Null (abgelaufen) ++ Polaroid Time Zero (Expired) - , Polaroid-Zeit Null (abgelaufen) - Polaroid Time Zero (Expired) -- , Polaroid Time Zero (abgelaufen) -- Polaroid Time Zero (Expired) --- , Polaroid Time Zero (abgelaufen) --- Polaroid Time Zero (Expired) Cold , Polaroid Zeit Null (abgelaufen) Kalt Polaroid Time Zero (Expired) Cold - , Polaroid Time Zero (abgelaufen) Kalt - Polaroid Time Zero (Expired) Cold -- , Polaroid Time Zero (Abgelaufen) Kalt -- Polaroid Time Zero (Expired) Cold --- , Polaroid Time Zero (abgelaufen) Kalt --- Pole Long , Pole lang Pole Rotation , Pol-Drehung Polka Dots , Polka-Punkte Pollock: Convergence , Pollack: Konvergenz Pollock: Summertime Number 9A , Pollack: Sommerzeit Nummer 9A Polygonize [Delaunay] , Polygonisieren [Delaunay] Polygonize [Energy] , Polygonisieren [Energie] Pop Shadows , Pop-Schatten Portrait , Porträt Portrait Retouching , Porträt-Retusche Portrait-1 , Porträt-1 Portrait-2 , Porträt-2 Portrait-3 , Porträt-3 Portrait-4 , Porträt-4 Portrait-5 , Porträt-5 Portrait-6 , Porträt-6 Portrait-7 , Porträt-7 Portrait-8 , Porträt-8 Portrait-9 , Porträt-9 Portrait0 , Porträt0 Portrait1 , Porträt1 Portrait10 , Porträt10 Portrait2 , Porträt2 Portrait3 , Porträt3 Portrait4 , Porträt4 Portrait5 , Porträt5 Portrait6 , Porträt6 Portrait7 , Porträt7 Portrait8 , Porträt8 Portrait9 , Porträt9 Position , Standpunkt Position X Origin (%) , Position X Ursprung (%) Position Y Origin (%) , Position Y Ursprung (%) Positive , Positiv Post-Normalize , Post-Normalisierung Post-Process , Post-Prozess Poster Edges , Poster Ränder Posterization Antialiasing , Posterisierung Antialiasing Posterization Level , Posterisierungsgrad Posterize , Plakatieren Sie Posterized Dithering , Posterisiertes Dithering Pow , Zuständigkeit Power , Macht Pre-Defined , Vordefiniert Pre-Defined Colormap , Vordefinierte Farbkarte Pre-Gamma , Vor-Gamma Pre-Normalize , Vor-Normalisierung Pre-Normalize Image , Bild vornormalisieren Pre-Process , Vor-Prozess Precision , Präzision Precision (%) , Genauigkeit (%) Preliminary Surface Shift , Vorläufige Oberflächenverschiebung Preliminary X-Axis Scaling , Vorläufige X-Achsen-Skalierung Preliminary Y-Axis Scaling , Vorläufige Y-Achsen-Skalierung Preprocessor Power , Leistung des Präprozessors Preprocessor Radius , Präprozessor-Radius Preserve Canvas for Post Bump Mapping , Leinwand für Post-Bump-Mapping konservieren Preserve Edges , Kanten konservieren Preserve Image Dimension , Bilddimension erhalten Preserve Initial Brightness , Ursprüngliche Helligkeit beibehalten Preserve Luminance , Leuchtdichte erhalten Preset , Voreingestellt Preview , Vorschau Preview All Outputs , Vorschau aller Ausgaben Preview Bands , Vorschau Bands Preview Brush , Vorschau-Pinsel Preview Data , Vorschau von Daten Preview Detected Shapes , Vorschau erkannter Formen Preview Frame Selection , Vorschau der Rahmenauswahl Preview Gradient , Vorschau-Farbverlauf Preview Grain Alone , Vorschau Grain Alone Preview Grid , Vorschau-Raster Preview Guides , Vorschau-Anleitungen Preview Mapping , Vorschau-Mapping Preview Mask , Vorschau-Maske Preview Only Shadow , Vorschau nur Schatten Preview Opacity (%) , Vorschau-Durchsichtigkeit (%) Preview Original , Vorschau Original Preview Precision , Vorschau Präzision Preview Progress (%) , Vorschau Fortschritt (%) Preview Progression While Running , Vorschau des Fortschritts während der Ausführung Preview Ref Point , Vorschau Ref-Punkt Preview Reference Circle , Vorschau Referenzkreis Preview Selection , Vorschau-Auswahl Preview Shape , Vorschau Form Preview Shows , Vorschau-Shows Preview Split , Vorschau-Split Preview Subsampling , Vorschau Subsampling Preview Time , Vorschau-Zeit Preview Tones Map , Vorschau der Töne Karte Preview Type , Vorschau-Typ Preview Without Alpha , Vorschau ohne Alpha Primary Angle , Primärer Winkel Primary Color , Primärfarbe Primary Factor , Primärer Faktor Primary Gamma , Primäres Gamma Primary Radius , Primärer Radius Primary Shift , Primäre Schicht Primary Twist , Primäre Drehung Print Adjustment Marks , Druckanpassungs-Markierungen Print Films (12) , Filme drucken (12) Print Frame Numbers , Nummern der Druckrahmen Print Size Unit , Einheit der Druckgröße Print Size Width , Druckgröße Breite Privacy Notice , Hinweis zum Datenschutz Pro Neg Hi , Pro Neg Hallo Pro Neg Std , Pro Neg Std. Probability Map , Wahrscheinlichkeitskarte Procedural , Verfahrensfragen Process As , Prozess als Process by Blocs of Size , Prozess nach Größenblöcken Process Channels Individually , Kanäle einzeln verarbeiten Process Top Layer Only , Nur obere Schicht verarbeiten Process Transparency , Prozess-Transparenz Processing Mode , Verarbeitungs-Modus Progressen , Fortschritt Propagation , Ausbreitung Proportion , Anteil Protanomaly , Protanomalie Protanopia , Protanopie Protect Highlights 01 , Highlights schützen 01 Prussian Blue , Preußisch Blau Pseudo-Gray Dithering , Pseudo-Grau-Dithering Purple , Violett Purple11 (12) , Violett11 (12) Puzzle , Rätsel Pyramid , Pyramide Pyramid Processing , Pyramiden-Verarbeitung Pythagoras Tree , Pythagoras-Baum Quadrangle , Viereck Quadratic , Quadratisch Quadtree Variations , Quadtree Variationen Quality , Qualität Quality (%) , Qualität (%) Quantization , Quantifizierung Quantize Colors , Farben quantisieren Quasi-Gaussian , Quasi-gaußisch Quick , Schnell Quick Copyright , Schnell Copyright Quick Enlarge , Schnell vergrößern R/B Smoothness (Principal) , R/B Glätte (Prinzipal) R/B Smoothness (Secondary) , R/B-Glätte (sekundär) Radius / Angle , Radius/Winkel Radius [Manual] , Radius [Manuell] Radius Cut , Radius-Schnitt Radius Middle Circle , Radius Mittelkreis Radius Outer Circle A (>0 W%) (<0 H%) , Radius Außenkreis A (>0 W%) (<0 H%) Rain & Snow , Regen und Schnee Rainbow , Regenbogen Raindrops , Regentropfen Random , Zufällig Random [non-Transparent] , Zufällig [nicht-transparent] Random Angle , Zufälliger Winkel Random Color Ellipses , Zufällige Farb-Ellipsen Random Colors , Zufällige Farben Random Seed , Zufälliges Saatgut Random Shade Stripes , Zufällige Farbstreifen Randomize , Randomisieren Sie Randomized , Randomisiert Randomness , Zufälligkeit Range , Bereich Ratio , Verhältnis Raw , Roh Rays , Rochen Rays Colors AB , Rochen-Farben AB Rays Colors ABC , Rochenfarben ABC Rays Colors ABCD , Strahlen-Farben ABCD Rays Colors ABCDE , Rochen-Farben ABCDE Rays Colors ABCDEF , Rochen-Farben ABCDEF Rays Colors ABCDEFG , Rochen-Farben ABCDEFG Rebuild From Similar Blocs , Neuaufbau aus ähnlichen Blöcken Recompose , neu verfassen Reconstruct From Previous Frames , Aus früheren Frames rekonstruieren Recover , wiederherstellen Recover Highlights , Höhepunkte der Erholung Recover Shadows , Schatten wiederherstellen Recovery , Wiederherstellung Rectangle , Rechteck Recursion Depth , Rekursionstiefe Recursions , Rekursionen Recursive Median , Rekursiver Median Red , Rot Red - Green - Blue , Rot - Grün - Blau Red - Green - Blue - Alpha , Rot - Grün - Blau - Alpha Red Afternoon 01 , Roter Nachmittag 01 Red Blue Yellow , Rot Blau Gelb Red Chroma Factor , Roter Chroma-Faktor Red Chroma Shift , Rot-Chroma-Verschiebung Red Chroma Smoothness , Rot-Chroma-Glätte Red Chrominance , Rote Chrominanz Red Day 01 , Roter Tag 01 Red Dream 01 , Roter Traum 01 Red Factor , Roter Faktor Red Level , Rote Stufe Red Rotations , Rot Rotationen Red Shift , Rotverschiebung Red Smoothness , Rote Glätte Red Wavelength , Rote Wellenlänge Red-Eye Attenuation , Rote-Augen-Abschwächung Red-Green , Rot-Grün Reds , Rote Reds Oranges Yellows , Rot Orangen Gelb Reduce Halos , Halos reduzieren Reduce Noise , Lärm reduzieren Reduce RAM , RAM verkleinern Reduce Redness , Rötung reduzieren Reference , Referenz Reference Angle (deg.) , Referenzwinkel (Grad) Reference Color , Referenzfarbe Reference Colors , Referenz-Farben Reflect , Nachdenken Reflection , Reflexion Refraction , Refraktion Regular Grid , Reguläres Gitter Regularity , Regelmäßigkeit Regularity (%) , Regelmässigkeit (%) Regularization , Regularisierung Regularization (%) , Regularisierung (%) Regularization Factor , Regularisierungs-Faktor Regularization Iterations , Regularisierungs-Iterationen Reject , ablehnen Rejected Colors , Abgelehnte Farben Rejected Mask , Abgelehnte Maske Relative Block Count , Relative Block-Anzahl Relative Size , Relative Größe Relative Warping , Relative Verwölbung Release Notes , Anmerkungen zur Veröffentlichung Relief , Erleichterung Relief Amplitude , Entlastungsamplitude Relief Contrast , Relief Kontrast Relief Light , Relief-Licht Relief Size , Größe des Reliefs Relief Smoothness , Relief Glätte Remove Artifacts From Micro/Macro Detail , Artefakte aus Mikro-/Makro-Details entfernen Remove Hot Pixels , Hot Pixels entfernen Remove Tile , Kachel entfernen Render Multiple Frames , Rendern mehrerer Frames Render on Dark Areas , Darstellung in dunklen Bereichen Render on White Areas , Darstellung auf weißen Flächen Render Routine for Wiggle Animations , Render-Routine für Wackelanimationen Rendering Mode , Rendering-Modus Repair Scanned Document , Gescanntes Dokument reparieren Repeat , Wiederholen Sie Repeat [Memory Consuming!] , Wiederholen Sie [Speicherfresser!] Repeats , Wiederholt Replace , Ersetze Replace (Sharpest) , Ersetzen (Schärfste) Replace Layer with CLUT , Schicht durch CLUT ersetzen Replace Source by Target , Quelle durch Ziel ersetzen Replace With White , Ersetzen durch Weiß Replaced Color , Ersetzte Farbe Replacement Color , Ersatzfarbe Reptile , Reptil Rescaling , Neuskalierung Reset View , Ansicht zurücksetzen Resize Image for Optimum Effect , Bildgröße für optimalen Effekt ändern Resolution , Entschließung Resolution (%) , Entschließung (%) Resolution (px) , Auflösung (px) Result Image , Ergebnis Bild Result Type , Ergebnis-Typ Resynthetize Texture [FFT] , Textur resynthetisieren [FFT] Resynthetize Texture [Patch-Based] , Textur resynthetisieren [Patch-basiert] Retouch Layer , Retusche-Ebene Retouched and Sharpened Areas , Retuschierte und geschärfte Bereiche Retouched Areas Only , Nur retuschierte Bereiche Retouched Image , Retuschiertes Bild Retouched Image Basic , Retuschiertes Bild Basic Retouched Image Final , Retuschiertes Bild Finale Retouching Style , Retusche-Stil Retro Brown 01 , Retro-Braun 01 Retro Fade , Rückblende Retro Magenta 01 , Retro-Magenta 01 Retro Summer 3 , Retro-Sommer 3 Retro Yellow 01 , Retro-Gelb 01 Return Scaling , Rückgabe Skalierung Reverse Bits , Bits umkehren Reverse Bytes , Umgekehrte Bytes Reverse Effect , Umgekehrte Wirkung Reverse Endianness , Umgekehrte Endianness Reverse Flip , Rückwärts spiegeln Reverse Frame Stack , Umgekehrter Rahmenstapel Reverse Gradient , Umgekehrter Gradient Reverse Mod , Rückwärts-Mod Reverse Motion , Rückwärtsbewegung Reverse Order , Umgekehrte Reihenfolge Reverse Pow , Umgekehrte Kraft Reversing , Umkehrung Revert Layer Order , Reihenfolge der Schichten umkehren Revert Layers , Ebenen umkehren RGB [All] , RGB [Alle] RGB [Blue] , RGB [Blau] RGB [Green] , RGB [Grün] RGB [red] , RGB [rot] RGB Image + Binary Mask (2 Layers) , RGB-Bild + Binärmaske (2 Ebenen) RGB Quantization , RGB-Quantisierung RGB Tone , RGB-Ton RGBA [All] , RGBA [Alle] RGBA Foreground + Background (2 Layers) , RGBA Vordergrund + Hintergrund (2 Ebenen) RGBA Image (Full-Transparency / 1 Layer) , RGBA-Bild (Voll-Transparenz / 1 Ebene) RGBA Image (Updatable / 1 Layer) , RGBA-Bild (aktualisierbar / 1 Ebene) Rice , Reis Right , Rechts Right Diagonal Foreground , Rechte Diagonale im Vordergrund Right Diagonal Foreground , Rechte Diagonale im Vordergrund Right Eye View , Ansicht des rechten Auges Right Foreground , Rechter Vordergrund Right Position , Rechte Position Right Side Orientation , Orientierung auf der rechten Seite Right Slope , Rechte Neigung Right Stream Only , Nur rechter Stream Rigid , Starr Ripple , Welligkeit Robert Cross 2 , Robert-Kreuz 2 Roddy (by Mahvin) , Roddy (von Mahvin) Rodilius [Animated] , Rodilius [animiert] Rollei Retro 80s , Rollei Retro 80er Jahre Rooster , Hahn Rotate , Rotieren Rotate (muted) , Rotieren (stumm) Rotate (vibrant) , Rotieren (lebhaft) Rotate 180 Deg. , Um 180 Grad drehen. Rotate 270 Deg. , Drehen Sie 270 Grad. Rotate 90 Deg. , Um 90 Grad drehen. Rotate Hue Bands , Farbtonbänder drehen Rotate Tree , Baum drehen Rotated , Gedreht Rotated (crush) , Gedreht (zerkleinern) Rotations , Rotationen Round , Runde Roundness , Rundheit Row by Row , Reihe für Reihe RYB [All] , RYB [Alle] RYB [Blue] , RYB [Blau] RYB [Red] , RYB [Rot] RYB [Yellow] , RYB [Gelb] S-Curve Contrast , S-Kurven-Kontrast Salt and Pepper , Salz und Pfeffer Same as Input , Dasselbe wie Eingabe Same Axis , Gleiche Achse Sample Image , Beispielbild Sampling , Bemusterung Sat Bottom , Sat Unten Sat Range , Sat-Bereich Saturated Blue , Gesättigtes Blau Saturation , Sättigung Saturation (%) , Sättigung (%) Saturation Channel Gamma , Sättigungskanal-Gamma Saturation Correction , Sättigungs-Korrektur Saturation EQ , Sättigung EQ Saturation Factor , Sättigungs-Faktor Saturation Offset , Sättigungs-Offset Saturation Shift , Sättigungs-Verschiebung Saturation Smoothness , Sättigung Glätte Save CLUT as .Cube or .Png File , CLUT als .Cube- oder .Png-Datei speichern Save Gradient As , Farbverlauf speichern unter Saving Private Damon , Private Damon retten Scalar , Skalar Scale , Skala Scale (%) , Skala (%) Scale 1 , Skala 1 Scale 2 , Skala 2 Scale CMYK , CMYK skalieren Scale Factor , Skalenfaktor Scale Output , Ausgabe skalieren Scale Plasma , Schuppenplasma Scale RGB , RGB skalieren Scale Style to Fit Target Resolution , Skalierungsstil zur Anpassung an die Zielauflösung Scale Variations , Skalen-Variationen Scaled , Skaliert Scales , Skalen Scaling Factor , Skalierungsfaktor Scene Selector , Szenen-Wahlschalter Screen , Bildschirm Screen Border , Bildschirmrand Seamcarve , Nahtschnitzerei Seamless Deco , Nahtlose Dekoration Seamless Turbulence , Nahtlose Turbulenz Secant , Sekante Second Color , Zweite Farbe Second Offset , Zweiter Versatz Second Radius , Zweiter Radius Second Size , Zweite Größe Secondary Color , Sekundäre Farbe Secondary Factor , Sekundärer Faktor Secondary Gamma , Sekundäres Gamma Secondary Radius , Sekundärer Radius Secondary Shift , Sekundäre Schicht Secondary Twist , Sekundäre Drehung Sectors , Sektoren Seed , Saatgut Segment Max Length (px) , Maximale Länge des Segments (px) Segmentation , Segmentierung Segmentation Edge Threshold , Segmentierungskanten-Schwelle Segmentation Smoothness , Segmentierungs-Glätte Segments , Segmente Segments Strength , Stärke der Segmente Select By , Auswählen nach Select-Replace Color , Wählen-Ersetzen-Farbe Selected Color , Ausgewählte Farbe Selected Colors , Ausgewählte Farben Selected Frame , Ausgewählter Rahmen Selected Mask , Ausgewählte Maske Selection , Auswahl Selective Desaturation , Selektive Entsättigung Selective Gaussian , Selektiver Gauß Self , Selbst Self Glitching , Selbstglitching Self Image , Selbstbild Sensitivity , Empfindlichkeit Sequence X4 , Sequenz X4 Sequence X6 , Sequenz X6 Sequence X8 , Sequenz X8 Serenity , Gelassenheit Serial Number , Seriennummer Serpent , Schlange Set Aspect Only , Nur Aspekt einstellen Set Frame Format , Rahmenformat festlegen Seven Layers , Sieben Schichten Seventies Magazine , Zeitschrift der siebziger Jahre Shade , Farbton Shade Angle , Schatten-Winkel Shade Back to First Color , Farbton Zurück zur ersten Farbe Shade Bobs , Schatten Bobs Shade Strength , Farbton-Stärke Shading , Schattierung Shading (%) , Schattierung (%) Shadow , Schatten Shadow Contrast , Schatten-Kontrast Shadow Intensity , Schatten-Intensität Shadow King 39 , Schattenkönig 39 Shadow Offset X , Schattenversatz X Shadow Offset Y , Schattenversatz Y Shadow Patch , Schatten-Patch Shadow Size , Größe des Schattens Shadow Smoothness , Schattenglätte Shadows , Schatten Shadows Abstraction , Schatten-Abstraktion Shadows Brightness , Schatten-Helligkeit Shadows Color Intensity , Schatten Farbintensität Shadows Hue Shift , Schatten-Farbverschiebung Shadows Lightness , Schatten-Helligkeit Shadows Selection , Auswahl der Schatten Shadows Threshold , Schatten-Schwellenwert Shadows Zone , Schatten-Zone Shamoon Abbasi (25) , Schamun Abbasi (25) Shape , Form Shape Area Max , Form Fläche Max Shape Area Max0 , Formfläche Max0 Shape Area Min , Form Bereich Min Shape Area Min0 , Formfläche Min0 Shape Average , Form Durchschnitt Shape Average0 , Form Durchschnitt0 Shape Max , Form Max Shape Max0 , Form Max0 Shape Median , Form Median Shape Median0 , Form Median0 Shape Min , Form Min Shape Min0 , Form Min0 Shapeism , Shapeismus Shapes , Formen Sharp Abstract , Scharfer Abstrakter Sharpen , Schärfen Sharpen [Deblur] , Schärfen [Entgraten] Sharpen [Gold-Meinel] , Schärfen [Gold-Meinel] Sharpen [Gradient] , Schärfen [Gradient] Sharpen [Hessian] , Schärfen [hessisch] Sharpen [Inverse Diffusion] , Schärfen [Inverse Diffusion] Sharpen [Multiscale] , Schärfen [Multiskala] Sharpen [Octave Sharpening] , Schärfen [Oktav-Schärfung] Sharpen [Richardson-Lucy] , Schärfen [Richardson-Lucy] Sharpen [Shock Filters] , Schärfen [Stoßfilter] Sharpen [Texture] , Schärfen [Textur] Sharpen [Tones] , Schärfen [Töne] Sharpen [Unsharp Mask] , Schärfen [Unscharfe Maske] Sharpen [Whiten] , Schärfen [Weiß] Sharpen Details in Preview , Details in der Vorschau schärfen Sharpen Edges Only , Nur Kanten schärfen Sharpen Object , Objekt schärfen Sharpen Radius , Radius schärfen Sharpen Shades , Schärfen von Schattierungen Sharpened Areas Only , Nur geschärfte Bereiche Sharpening , Schärfen Sharpening Layer , Schärfungsschicht Sharpening Radius , Schärf-Radius Sharpening Strength , Schärfen der Stärke Sharpening Type , Schärfender Typ Sharpest , Schärfste Sharpness , Schärfe Shift Linear Interpolation? , Lineare Verschiebungsinterpolation? Shift Point , Verschiebungspunkt Shift X , Verschiebung X Shift Y , Verschiebung Y Shininess , Glanz Shivers , Schüttelfrost Shock Waves , Schockwellen Shopping Cart , Der Warenkorb Show Both Poles , Beide Polen anzeigen Show Difference , Unterschied anzeigen Show Frame , Frame anzeigen Show Grid , Gitter anzeigen Show Watershed , Wassereinzugsgebiet anzeigen Shrink , Schrumpfen Shuffle Pieces , Mischen von Stücken Side by Side , Seite an Seite Sierpinksi Design , Sierpinksi-Entwurf Sierpinski Triangle , Sierpinski-Dreieck Silver , Silber Similarity Space , Ähnlichkeitsraum Simple Local Contrast , Einfacher lokaler Kontrast Simple Noise Canvas , Einfache Lärm-Leinwand Simulate Film , Film simulieren Sine , Sinus Sine+ , Sinus+ Single (Merged) , Einzeln (verschmolzen) Single Custom Depth Map , Einzelne benutzerdefinierte Tiefenkarte Single Image Stereogram , Einzelbild-Stereogramm Single Layer , Einzelne Schicht Single Opaque Shapes Over Transp. BG , Einzelne opake Formen über Transp. BG Six Layers , Sechs Schichten Sixteen Threads , Sechzehn Fäden Size , Größe Size (%) , Größe (%) Size for Bright Tones , Größe für helle Töne Size for Dark Tones , Größe für dunkle Töne Size of Frame Numbers (%) , Größe der Rahmennummern (%) Size Variance , Größenabweichung Size-1 , Größe-1 Size-2 , Größe 2 Size-3 , Größe 3 Skeleton , Skelett Sketch , Skizze Skin Estimation , Schätzung der Haut Skin Mask , Hautmaske Skin Tone Colors , Hautton-Farben Skin Tone Mask , Hautton-Maske Skin Tone Protection , Hautton-Schutz Skip All Other Steps , Alle anderen Schritte überspringen Skip Finest Scales , Feinste Skalen überspringen Skip Others Steps , Andere Schritte überspringen Skip This Step , Diesen Schritt überspringen Skip to Use the Mask to Boost , Überspringen, um die Maske zum Verstärken zu verwenden Slice Luminosity , Schicht-Leuchtkraft Slide [Color] (26) , Dia [Farbe] (26) Slow (Accurate) , Langsam (Akkurat) Slow Recovery , Langsame Erholung Small , Klein Small (Faster) , Klein (Schneller) SmallHD Movie Look (7) , SmallHD-Film-Look (7) Smart , Clever Smart Contrast , Intelligenter Kontrast Smart Threshold , Intelligente Schwelle Smooth , Glatt Smooth [Anisotropic] , Glatt [Anisotrop] Smooth [Antialias] , Glatt [Antialias] Smooth [Bilateral] , Glatt [Bilateral] Smooth [Block PCA] , Glätten [Block PCA] Smooth [Diffusion] , Glatt [Diffusion] Smooth [Geometric-Median] , Glatt [Geometrisch-medianisch] Smooth [Guided] , Glatt [Geführt] Smooth [IUWT] , Glatt [IUWT] Smooth [Mean-Curvature] , Glatt [Mittlere Krümmung] Smooth [Median] , Glatt [Median] Smooth [NL-Means] , Glatt [NL-Mittel] Smooth [Patch-Based] , Glatt [Patch-basiert] Smooth [Patch-PCA] , Glatt [Patch-PCA] Smooth [Perona-Malik] , Glatt [Perona-Malik] Smooth [Selective Gaussian] , Glatt [Selektives Gaußsches] Smooth [Skin] , Glatt [Haut] Smooth [Thin Brush] , Glatt [Dünne Bürste] Smooth [Total Variation] , Glatt [Gesamtvariation] Smooth [Wavelets] , Glatt [Wavelets] Smooth [Wiener] , Glatt [Wiener] Smooth Abstract , Glatter Abstrakt Smooth Amount , Glatter Betrag Smooth Clear , Glatt klar Smooth Colors , Glatte Farben Smooth Crome-Ish , Glattes Chrom-Isch Smooth Dark , Glatt dunkel Smooth Fade , Glattes Ausblenden Smooth Green Orange , Glattes Grün Orange Smooth Light , Sanftes Licht Smooth Looping , Glatte Schleife Smooth Only , Nur glatt Smooth Sailing , Reibungsloses Segeln Smooth Teal Orange , Glatte Krickente Orange Smoothen Background Reconstruction , Hintergrund-Rekonstruktion glätten Smoother Edge Protection , Glatterer Kantenschutz Smoother Sharpness , Geschmeidigere Schärfe Smoother Softness , Geschmeidigere Weichheit Smoothing , Glätten Smoothing Style , Glättender Stil Smoothing Type , Glättungstyp Smoothness , Glätte Smoothness (%) , Glätte (%) Smoothness (px) , Glätte (px) Smoothness Shadow , Glattheit Schatten Smoothness Type , Glätte-Typ Snowflake , Schneeflocke Snowflake 2 , Schneeflocke 2 Snowflake Recursion , Schneeflocken-Rekursion Soft , Weich Soft Light , Weiches Licht Soft Burn , Weiche Verbrennung Soft Dodge , Weiches Ausweichen Soft Fade , Weiches Überblenden Soft Glow , Sanftes Glühen Soft Glow [Animated] , Sanftes Glühen [animiert] Soft Light , Weiches Licht Soft Random Shades , Weiche Zufallsschattierungen Soft Warming , Sanfte Erwärmung Soften , Aufweichen Soften All Channels , Alle Kanäle aufweichen Soften Guide , Anleitung zum Weichmachen Softlight , Weiches Licht Solarize , Solarisieren Solarize Color , Farbe solarisieren Solarized Color2 , Solarisierte Farbe2 Solidify , Verfestigen Solve Maze , Labyrinth lösen Some , Einige Some Blue , Etwas Blau Some Cyan , Etwas Cyan Some Green , Einige Grüne Some Key , Einige Schlüssel Some Magenta , Etwas Magenta Some Red , Etwas Rot Some Yellow , Etwas Gelb Sort Colors , Farben sortieren Sorting Criterion , Sortierkriterium Source (%) , Quelle (%) Source Color #1 , Quellfarbe #1 Source Color #10 , Quellfarbe #10 Source Color #11 , Quellfarbe #11 Source Color #12 , Quellfarbe #12 Source Color #13 , Quellfarbe #13 Source Color #14 , Quellfarbe #14 Source Color #15 , Quellfarbe #15 Source Color #16 , Quellfarbe #16 Source Color #17 , Quellfarbe #17 Source Color #18 , Quellfarbe #18 Source Color #19 , Quellfarbe #19 Source Color #2 , Quellfarbe #2 Source Color #20 , Quellfarbe #20 Source Color #21 , Quellfarbe #21 Source Color #22 , Quellfarbe #22 Source Color #23 , Quellfarbe #23 Source Color #24 , Quellfarbe #24 Source Color #3 , Quellfarbe #3 Source Color #4 , Quellfarbe #4 Source Color #5 , Quellfarbe #5 Source Color #6 , Quellfarbe #6 Source Color #7 , Quellfarbe #7 Source Color #8 , Quellfarbe #8 Source Color #9 , Quellfarbe #9 Source X-Tiles , Quelle X-Tiles Source Y-Tiles , Quelle Y-Kacheln Space , Weltraum Spacing , Abstände Span , Spanne Spatial Bandwidth , Räumliche Bandbreite Spatial Metric , Räumliche Metrik Spatial Overlap , Räumliche Überlappung Spatial Precision , Räumliche Präzision Spatial Radius , Räumlicher Radius Spatial Regularization , Räumliche Regularisierung Spatial Sampling , Räumliche Probenahme Spatial Scale , Räumliche Skala Spatial Tolerance , Räumliche Toleranz Spatial Transition , Räumlicher Übergang Spatial Variance , Räumliche Varianz Special Effects , Besondere Effekte Specific Saturation , Spezifische Sättigung Specify Different Output Size , Unterschiedliche Ausgabegröße angeben Specify HaldCLUT As , HaldCLUT angeben als Specular , Spezielles Specular (%) , Spiegel (%) Specular Centering , Spiegelzentrierung Specular Intensity , Spiegel-Intensität Specular Light , Spiegelndes Licht Specular Lightness , Spiegelnde Helligkeit Specular Shininess , Glänzender Glanz Specular Size , Spezielle Größe Speed , Geschwindigkeit Sphere , Bereich Spherize , Sphärisieren Spiral , Spirale Spiral RGB , Spirale RGB Spline Editor , Spline-Editor Spline Max Angle (deg) , Spline-Max-Winkel (Grad) Spline Max Length (px) , Maximale Spline-Länge (px) Spline Roundness , Spline-Rundheit Split Base and Detail Output , Geteilte Basis- und Detailausgabe Split Brightness / Colors , Geteilte Helligkeit/Farben Split Details [Alpha] , Details aufteilen [Alpha] Split Details [Gaussian] , Details aufspalten [Gauß] Split Details [Wavelets] , Details aufspalten [Wavelets] Sponge , Schwamm Spread , Verbreiten Spread Amount , Spread-Betrag Spread Angles , Spreizwinkel Spread Noise Amount , Ausbreitung Lärmpegel Spreading , Verbreitung Spring Morning , Frühlingsmorgen Sprocket 231 , Zahnkranz 231 Spy 29 , Spion 29 Square , Quadratisch Square (Inv.) , Quadrat (Inv.) Square 1 , Quadrat 1 Square 2 , Quadrat 2 Square to Circle , Quadrat zu Kreis Squared-Euclidean , Quadratisch-euklidisch Squares , Quadrate Squares (Outline) , Quadrate (Umriss) SRGB Conversion , SRGB-Umwandlung Stabilizer , Stabilisator Stained Glass , Buntes Glas Stamp , Briefmarke Standard (256) , Norm (256) Standard [No Scan] , Standard [Kein Scan] Standard Deviation , Standard-Abweichung Star , Stern Star: -5*(z^3/3-Z/4)/2 , Stern: -5*(z^3/3-Z/4)/2 Stars , Sterne Stars (Outline) , Sterne (Umriss) Start Angle , Startwinkel Start Color , Startfarbe Start Frame Number , Start-Rahmennummer Start of Mid-Tones , Beginn der Mitteltöne Starting Angle , Startwinkel Starting Color , Startfarbe Starting Feathering , Beginnende Befiederung Starting Frame , Startbild Starting Level , Ausgangsniveau Starting Pattern , Start-Muster Starting Point , Ausgangspunkt Starting Point (%) , Ausgangspunkt (%) Starting Scale (%) , Ausgangs-Skala (%) Starting Value , Anfangswert Stationary Frames , Stationäre Rahmen Std Angle (deg.) , Std. Winkel (Grad) Std Branching , Std-Verzweigung Std Length Factor (%) , Std. Längenfaktor (%) Std Thickness Factor (%) , Std-Dicke-Faktor (%) Stencil , Schablone Stencil Type , Schablonentyp Step , Schritt Step (%) , Schritt (%) Steps , Schritte Stereo Image , Stereo-Bild Stereo Window Position , Stereo-Fensterposition Stereographic Projection , Stereographische Projektion Stereoscopic Image Alignment , Stereoskopische Bildausrichtung Stereoscopic Window Position , Position des stereoskopischen Fensters Straight , Gerade Strands , Stränge Streak , Streifen Street , Straße Strength , Stärke Strength (%) , Stärke (%) Strength Effect , Kraft-Wirkung Strength Highlights , Stärke-Highlights Strength Midtones , Stärke Mitteltöne Strength Shadows , Stärke Schatten Stretch , Dehnen Stretch Colors , Stretch-Farben Stretch Contrast , Dehnungskontrast Stretch Factor , Dehnungsfaktor Strip , Streifen Stripe Orientation , Streifen-Orientierung Stroke , Schlaganfall Stroke Angle , Hubwinkel Stroke Length , Hublänge Stroke Strength , Schlaganfall-Stärke Strong , Stark Structure Smoothness , Glattheit der Struktur Studio , Atelier Style , Stil Style Variations , Stil-Variationen Stylize , stilisieren Subdivisions , Unterdivisionen Subpixel Interpolation , Subpixel-Interpolation Subpixel Level , Subpixel-Ebene Subsampling (%) , Unterstichprobe (%) Subtle Blue , Zartes Blau Subtle Green , Subtiles Grün Subtle Yellow , Subtiles Gelb Subtract , Subtrahieren Subtractive , Subtraktiv Summer , Sommer Summer (alt) , Sommer (alt) Sunny , Sonnig Sunny (alt) , Sonnig (alt) Sunny (rich) , Sonnig (reich) Sunny (warm) , Sonnig (warm) Super Warm (rich) , Super Warm (reichhaltig) Super-Pixels , Super-Pixel Superformula , Superformel Superimpose with Original? , Mit Original überlagern? Surface Disturbance , Oberflächenstörung Surface Disturbance Multiplier , Oberflächenstörungsmultiplikator Swan , Schwan Swap , Tausch Swap Colors , Farben tauschen Swap Layers , Ebenen austauschen Swap Radius / Angle , Radius/Winkel vertauschen Swap Sides , Seiten tauschen Sweet Bubblegum , Süßer Bubblegum Sweet Gelatto , Süßes Gelatto Symmetric 2D Shape , Symmetrische 2D-Form Symmetry , Symmetrie Symmetry Sides , Symmetrie-Seiten Synthesis Scale , Synthese-Skala Tangent Radius , Tangentialer Radius Target Color #1 , Zielfarbe #1 Target Color #10 , Zielfarbe #10 Target Color #11 , Zielfarbe #11 Target Color #12 , Zielfarbe #12 Target Color #13 , Zielfarbe #13 Target Color #14 , Zielfarbe #14 Target Color #15 , Zielfarbe #15 Target Color #16 , Zielfarbe #16 Target Color #17 , Zielfarbe #17 Target Color #18 , Zielfarbe #18 Target Color #19 , Zielfarbe #19 Target Color #2 , Zielfarbe #2 Target Color #20 , Zielfarbe #20 Target Color #21 , Zielfarbe #21 Target Color #22 , Zielfarbe #22 Target Color #23 , Zielfarbe #23 Target Color #24 , Zielfarbe #24 Target Color #3 , Zielfarbe #3 Target Color #4 , Zielfarbe #4 Target Color #5 , Zielfarbe #5 Target Color #6 , Zielfarbe #6 Target Color #7 , Zielfarbe #7 Target Color #8 , Zielfarbe #8 Target Color #9 , Zielfarbe #9 Teal Fade , Krickende Krickente Teal Magenta Gold , Krickente Magenta Gold Teal Moonlight , Tee-Mondlicht Teal Orange , Krickentee Orange Teal Orange 1 , Krickentee Orange 1 Teal Orange 2 , Krickentee Orange 2 Teal Orange 3 , Krickentee Orange 3 TechnicalFX - Backlight Filter , TechnicalFX - Filter für Hintergrundbeleuchtung Temperature Balance , Temperatur-Gleichgewicht Ten Layers , Zehn Schichten Tends to Be Square , Neigt zur Quadratur Tension Green 1 , Spannung Grün 1 Tension Green 2 , Spannung Grün 2 Tension Green 3 , Spannung Grün 3 Tension Green 4 , Spannung Grün 4 Tensor Smoothness , Tensor-Glätte Tertiary Factor , Tertiärer Faktor Tertiary Gamma , Tertiäres Gamma Tertiary Shift , Tertiäre Schicht Tertiary Twist , Tertiäre Drehung Texture , Beschaffenheit Texture Enhance , Textur verbessern Textured Glass , Strukturiertes Glas The Game of Life , Das Spiel des Lebens The Matrices , Die Matrizen Thickness , Dicke Thickness (%) , Dicke (%) Thickness (px) , Dicke (px) Thickness Factor , Dicke-Faktor Thin Edges , Dünne Ränder Thin Separators , Dünne Separatoren Thinness , Schlankheit Thinning , Ausdünnung Thinning (Slow) , Ausdünnung (langsam) Three Layers , Drei Schichten Threshold , Schwelle Threshold (%) , Schwellenwert (%) Threshold Etch , Schwellenwert-Ätzung Threshold High , Schwelle Hoch Threshold Low , Schwellenwert Niedrig Threshold Max , Schwelle Max Threshold Mid , Schwelle Mitte Threshold On , Schwelle Ein Thriller 2 , Krimi 2 Thumbnail Size , Größe der Miniaturansicht Tikhonov , Tichonow Tile Poles , Fliesenpfähle Tile Size , Kachel-Größe Tileable Rotation , Kachelbare Rotation Tiled Isolation , Gekachelte Isolation Tiled Normalization , Kachel-Normalisierung Tiled Parameterization , Gekachelte Parametrisierung Tiled Preview , Gekachelte Vorschau Tiled Random Shifts , Gekachelte Zufallsverschiebungen Tiled Rotation , Kachel-Rotation Tiles , Kacheln Tiles to Layers , Kacheln zu Ebenen Tilt , Kippen Sie Time , Zeit Time Step , Zeitschritt Timed Image , Zeitgesteuertes Bild Tiny , Winzig To Equirectangular , Zu gleichschenklig To Nadir / Zenith , Nach Nadir / Zenith Toasted Garden , Getoasteter Garten Toes , Zehen Toggle to View Base Image , Umschalten zur Ansicht des Basisbildes Tolerance , Toleranz Tolerance to Gaps , Toleranz gegenüber Lücken Tonal Bandwidth , Ton-Bandbreite Tone Blur , Unscharfe Töne Tone Enhance , Tonwertverbesserung Tone Gamma , Ton-Gamma Tone Mapping , Tone-Mapping Tone Mapping (%) , Tone-Mapping (%) Tone Mapping [Fast] , Tone-Mapping [Schnell] Tone Mapping Fast , Tone-Mapping schnell Tone Mapping Soft , Tone-Mapping weich Tone Presets , Ton-Voreinstellungen Tone Threshold , Ton-Schwellenwert Tones Range , Tone-Bereich Tones Smoothness , Töne Glätte Tones to Layers , Töne zu Ebenen Top , Nach oben Top Layer , Obere Schicht Top Left , Oben links Top Right , Oben rechts Top-Left Vertex (%) , Scheitelpunkt oben links (%) Top-Right Vertex (%) , Scheitelpunkt oben rechts (%) Total Layers , Total Schichten Total Variation , Gesamte Variation Transfer Colors [Histogram] , Farben übertragen [Histogramm] Transfer Colors [Patch-Based] , Farben übertragen [Patch-basiert] Transfer Colors [PCA] , Farben übertragen [PCA] Transfer Colors [Variational] , Farben übertragen [Variational] Transform , Verwandeln Transition Map , Übergangs-Karte Transition Shape , Form des Übergangs Transition Smoothness , Glattheit des Übergangs Transmittance Map , Übertragungskarte Transparency , Transparenz Transparent , Transparente Transparent Background , Transparenter Hintergrund Transparent Black & White , Transparentes Schwarz-Weiß Transparent Color , Transparente Farbe Transparent on Black , Transparent auf Schwarz Transparent on White , Transparent auf Weiß Transparent Skin , Transparente Haut Tree , Baum Trent 18 , Trient 18 Triangle , Dreieck Triangles , Dreiecke Triangles (Outline) , Dreiecke (Umriss) Triangular Ha , Dreieckig Ha Triangular Hb , Dreieckig Hb Triangular Va , Dreieckig Va Triangular Vb , Dreieckig Vb Tritanomaly , Tritanomalie Tritanopia , Tritanopie True Colors 8 , Wahre Farben 8 Trunk Color , Farbe des Stammes Trunk Opacity (%) , Trübung des Rumpfes (%) Trunks , Stämme Tulips , Tulpen Turbulence , Turbulenzen Turbulence 2 , Turbulenz 2 Turbulent Halftone , Turbulenter Halbton Turkiest 42 , Türkischste 42 Turn on Rotate and Twirl , Drehen und Drehen einschalten Twirl , Wirbeln Sie Twisted Rays , Verdrehte Strahlen Two Layers , Zwei Schichten Two Threads , Zwei Fäden Two-By-Two , Zwei-zu-Zwei Type , Geben Sie ein. Type Snowflake , Typ Schneeflocke Ultra Water , Ultra Wasser Unaligned Images , Nicht ausgerichtete Bilder Undeniable , Unbestreitbar Undeniable 2 , Unbestreitbar 2 Underwater , Unterwasser Undo Anaglyph , Anaglyphen rückgängig machen Unknown , Unbekannt Unquantize [JPEG Smooth] , Unquantisieren [JPEG glätten] Unsharp Mask , Unscharfe Maske Unstrip , Entstrippen Untwist , Aufdrehen Up-Left , Links oben Up-Right , Aufwärts-Rechts Upper Layer Is the Top Layer for All Blends , Obere Schicht ist die oberste Schicht für alle Mischungen Upper Side Orientation , Orientierung auf der Oberseite Uppercase Letters , Großbuchstaben Upscale [DCCI2x] , Hochskala [DCCI2x] Upscale [Diffusion] , Hochskala [Diffusion] Upscale [Scale2x] , Hochskalierung [Skalierung2x] Urban Cowboy , Städtischer Cowboy Use as Hue , Als Farbton verwenden Use as Saturation , Verwendung als Sättigung Use Individual Depth Map , Individuelle Tiefenkarte verwenden Use Light , Licht verwenden Use Maximum Tones , Maximale Töne verwenden Use Top Layer as a Priority Mask , Obere Ebene als Prioritätsmaske verwenden User-Defined , Benutzerdefiniert User-Defined (Bottom Layer) , Benutzerdefiniert (unterste Schicht) Uzbek Bukhara , Usbekisch Buchara Uzbek Marriage , Usbekisch Heirat Uzbek Samarcande , Usbekisch-Samarcande V Cutoff , V-Abschaltung Val Range , Val-Bereich Value , Wert Value Action , Wert-Aktion Value Blending , Wert-Mischung Value Bottom , Wert Unten Value Correction , Wert-Korrektur Value Factor , Wert-Faktor Value Normalization , Wert-Normalisierung Value Offset , Wert-Offset Value Precision , Wert-Präzision Value Range , Wertebereich Value Scale , Werteskala Value Shift , Wert-Verschiebung Value Smoothness , Wert Glätte Value Top , Wert Oben Value Variance , Wert-Varianz Values , Werte Van Gogh: Almond Blossom , Van Gogh: Mandelblüte Van Gogh: Irises , Van Gogh: Schwertlilien Van Gogh: The Starry Night , Van Gogh: Die sternenklare Nacht Van Gogh: Wheat Field with Crows , Van Gogh: Weizenfeld mit Krähen Variability , Variabilität Variance , Abweichung Variation A , Variante A Variation B , Variante B Variation C , Variante C Vector Painting , Vektor-Malerei Velocity , Geschwindigkeit Velvetia , Velvetien Vertex Type , Vertex-Typ Vertical , Vertikal Vertical (%) , Vertikal (%) Vertical 1 Amount , Vertikal 1 Betrag Vertical 1 Length , Vertikal 1 Länge Vertical 2 Amount , Vertikal 2 Betrag Vertical 2 Length , Vertikal 2 Länge Vertical Amount , Vertikaler Betrag Vertical Array , Vertikale Anordnung Vertical Blur , Vertikale Unschärfe Vertical Length , Vertikale Länge Vertical Size (%) , Vertikale Größe (%) Vertical Stripes , Vertikale Streifen Vertical Tiles , Vertikale Kacheln Very Course 5 , Sehr Kurs 5 Very Fine , Sehr fein Very High , Sehr hoch Very High (Even Slower) , Sehr hoch (noch langsamer) Very Warm Greenish , Sehr warm grünlich Vibrant , Lebendig Vibrant (alien) , Lebendig (Ausländer) Vibrant (contrast) , Lebendig (Kontrast) Vibrant (crome-Ish) , Lebendig (Crome-Ish) Victory , Sieg View Outlines Only , Nur Umrisse anzeigen View Resolution , Auflösung anzeigen Vignette Contrast , Vignetten-Kontrast Vignette Size , Größe der Vignette Vignette Strength , Stärke der Vignette Vignette Strenth , Vignette Stärke Vintage , Jahrgang Vintage (alt) , Jahrgang (alt) Vintage (brighter) , Jahrgang (heller) Vintage 163 , Jahrgang 163 Vintage Chrome , Vintage-Chrom Vintage Style , Vintage-Stil Vintage Tone (%) , Vintage-Ton (%) Vintage Warmth 1 , Vintage-Wärme 1 Virtual Landscape , Virtuelle Landschaft Visible Watermark , Sichtbares Wasserzeichen Vivid Edges , Lebendige Ränder Vivid Edges* , Lebendige Ränder* Vivid Light , Lebendiges Licht Vivid Screen , Anschaulicher Bildschirm Wall , Wand Warm (highlight) , Warm (markieren) Warm (yellow) , Warm (gelb) Warm Dark Contrasty , Warm-Dunkel-Kontrast Warm Fade , Warmes Fade Warm Fade 1 , Warme Blende 1 Warm Sunset Red , Warmes Sonnenuntergangsrot Warm Teal , Warme Krickente Warm Vintage , Warme Weinlese Warp [Interactive] , Warp [Interaktiv] Warp by Intensity , Verwerfung nach Intensität Water , Wasser Waterfall , Wasserfall Wave , Welle Wave(s) , Welle(n) Wavelength , Wellenlänge Waves Amplitude , Wellen-Amplitude Waves Smoothness , Glätte der Wellen We'll See , Wir werden sehen. Weave , Weben Weird , Seltsam Whirl Drawing , Wirbel-Zeichnung Whirls , Wirbelt White , Weiß White Dices , Weiße Würfel White Layers , Weiße Schichten White Level , Weiß Level White on Black , Weiß auf Schwarz White on Transparent , Weiß auf Transparent White on Transparent Black , Weiß auf transparentem Schwarz White Point , Weißer Punkt White to Black , Weiß bis Schwarz White Walls , Weiße Wände Whitening , Bleichmittel Whiter Whites , Weißer Weißer Whites , Weiße Width , Breite Width (%) , Breite (%) Winter Lighthouse , Winter-Leuchtturm Wipe , Wischen Sie Wireframe , Drahtgitter Wiremap , Übersichtskarte Without , Ohne Wooden Gold 20 , Hölzernes Gold 20 Work on Frameset , Arbeit am Frameset Wrap , einwickeln X Center , X-Zentrum X Origine , X Ursprung X-Angle , X-Winkel X-Axis , X-Achse X-Axis Then Y-Axis , X-Achse dann Y-Achse X-Border , X-Grenze X-Centering , X-Zentrierung X-Centering (%) , X-Zentrierung (%) X-Coordinate , X-Koordinate X-Coordinate [Manual] , X-Koordinate [Manuell] X-Curvature , X-Krümmung X-End (%) , X-Ende (%) X-Factor , X-Faktor X-Factor (%) , X-Faktor (%) X-Multiplier , X-Multiplikator X-Offset , X-Versatz X-Offset (%) , X-Versatz (%) X-Scale , X-Skala X-Shadow , X-Schatten X-Shift (%) , X-Verschiebung (%) X-Shift (px) , X-Verschiebung (px) X-Size , X-Größe X-Size (px) , X-Größe (px) X-Smoothness , X-Glätte X-Tiles , X-Kacheln X-Variations , X-Varianten X/Y-Ratio , X/Y-Verhältnis X1 (none) , X1 (keine) XY Mirror , XY-Spiegel XY-Axes , XY-Achsen XY-Axis , XY-Achse XY-Coordinates (%) , XY-Koordinaten (%) XY-Factor , XY-Faktor XY-Light , XY-Licht Y Center , Y Mitte Y Origine , Y Ursprung Y-Angle , Y-Winkel Y-Axis , Y-Achse Y-Axis Then X-Axis , Y-Achse dann X-Achse Y-Border , Y-Grenze Y-Center , Y-Zentrum Y-Centering , Y-Zentrierung Y-Centering (%) , Y-Zentrierung (%) Y-Coordinate , Y-Koordination Y-Coordinate [Manual] , Y-Koordinate [Handbuch] Y-Curvature , Y-Krümmung Y-End (%) , Y-Ende (%) Y-Factor , Y-Faktor Y-Factor (%) , Y-Faktor (%) Y-Light , Y-Licht Y-Motion , Y-Bewegung Y-Multiplier , Y-Multiplikator Y-Offset , Y-Versatz Y-Offset (%) , Y-Versatz (%) Y-Ratio , Y-Verhältnis Y-Scale , Y-Skala Y-Seed (Julia) , Y-Samen (Julia) Y-Shadow , Y-Schatten Y-Shift , Y-Schicht Y-Shift (%) , Y-Verschiebung (%) Y-Shift (px) , Y-Verschiebung (px) Y-Size , Y-Größe Y-Size (px) , Y-Größe (px) Y-Smoothness , Y-Glätte Y-Tiles , Y-Kacheln Y-Variations , Y-Varianten YAG Effect , YAG-Effekt YCbCr (Chroma Only) , YCbCr (nur Chroma) YCbCr (Distinct) , YCbCr (unterscheidbar) YCbCr (Luma Only) , YCbCr (nur Luma) YCbCr (Mixed) , YCbCr (gemischt) YCbCr [Blue Chrominance] , YCbCr [Blaue Chrominanz] YCbCr [Blue-Red Chrominances] , YCbCr [Blau-Rot-Chrominanzen] YCbCr [Green Chrominance] , YCbCr [Grüne Chrominanz] YCbCr [Luminance] , YCbCr [Leuchtdichte] YCbCr [Red Chrominance] , YCbCr [Rote Chrominanz] Yellow , Gelb Yellow 55B , Gelb 55B Yellow Factor , Gelb-Faktor Yellow Film 01 , Gelber Film 01 Yellow Shift , Gelb-Verschiebung Yellow Smoothness , Gelb Glätte YES8 , JA8 You Can Do It , Sie können es tun Z-Angle , Z-Winkel Z-Motion , Z-Bewegung Z-Multiplier , Z-Multiplikator Z-Range , Z-Bereich Z-Scale , Z-Skala Z-Size , Z-Größe Z^^6 + Z^^3 - 1 , Z^^^6 + Z^^3 - 1 Z^^8 + 15*z^^4 - 1 , Z^^^8 + 15*z^^^4 - 1 Zero , Null ZilverFX - B&W Solarization , ZilverFX - Schwarz-Weiß-Solarisation ZilverFX - InfraRed , ZilverFX - InfraRot ZilverFX - Vintage B&W , ZilverFX - Jahrgangs-S&W Zone System , Zonensystem Zoom , vergrößern Zoom (%) , Vergrößern (%) Zoom Center , Zoom-Zentrum Zoom Factor , Zoom-Faktor Zoom In , Vergrößern Zoom Out , Verkleinern ================================================ FILE: translations/filters/gmic_qt_es.csv ================================================ Arrays & Tiles , Matrices y azulejos Artistic , Artístico Black & White , Blanco y negro Colors , Colores Contours , Contornos Deformations , Deformaciones Degradations , Degradaciones Details , Detalles Testing , Prueba Frames , Marcos Frequencies , Frecuencias Layers , Capas Lights & Shadows , Luces y sombras Patterns , Patrones Rendering , Renderización Repair , Reparación Sequences , Secuencias Silhouettes , Siluetas Icons , Iconos Misc , Misc Nature , Naturaleza Others , Otros Stereoscopic 3D , 3D estereoscópico ♥ Support Us ! ♥ , ¡ Apóyanos ! *Colors Doping , *Colores Dopaje *Colors Doping* , *Colores Dopaje* *Comix Colors* , *Combinación de colores* *Dark Edges* , *Bordes oscuros* *Dark Screen* , *Pantalla oscura* *Graphix Colors , *Colores del gráfix *Vivid Edges* , *Bordes vivos* *Vivid Screen* , *Pantalla viva* +180 Deg. , +180 grados. +90 Deg. , +90 grados. -1. Value Action , -1. Valor Acción -2. Overall Channel(s) , -2. Canal(es) general(es) -3. Normalisation Channel(s) , -3. Canal(es) de normalización -4. Normalise , -4. Normaliza -90 Deg. , -90 grados. .Bmp , ...Bmp. .Png , ...Png. 0. Recompute , 0. Recompute 1 Levels , 1 Niveles 1. Plasma Texture [Discards Input Image] , 1. Textura de plasma [Descarta la imagen de entrada] 10. Quadtree Max Precision , 10. Quadtree Max Precision 10th , 10º. 10th Color , 10º Color 11. Quadtree Min Homogeneity , 11. Homogeneidad de Quadtree Min 11th , 11º. 12 Colors , 12 colores 12 Grays , 12 Grises 12. Quadtree Max Homogeneity , 12. Homogeneidad de Quadtree Max 125 Keypoints , 125 puntos clave 12th , 12º. 13. Noise Type , 13. Tipo de ruido 13th , 13º. 14. Minimum Noise , 14. Ruido mínimo 14th , 14º. 15. Maximum Noise , 15. Ruido máximo 15th , 15º. 16 Colors , 16 Colores 16 Grays , 16 Grises 16. Noise Channel(s) , 16. Canal(es) de ruido 16th , 16º. 17. Warp Iterations , 17. Iteraciones de la urdimbre 18. Warp Intensity , 18. Intensidad de la urdimbre 180 Deg. , 180 grados. 19. Warp Offset , 19. Compensación de la urdimbre 1st , 1er. 1st Additional Palette (.Gpl) , 1ª Paleta adicional (.Gpl) 1st Color , 1er Color 1st Parameter , 1er parámetro 1st Text , 1er Texto 1st Tone , 1er Tono 1st Variance , 1ª Variación 1st X-Coord , 1er X-Coord 1st Y-Coord , 1a Y-Coordinación 2 Colors , 2 colores 2 Grays , 2 Grises 2 Noise , 2 Ruido 2-Strip Process , Proceso de 2 tiras 2. Plasma Scale , 2. Escala de plasma 20. Scale to Width , 20. Escala a la anchura 21. Scale to Height , 21. Escala a la altura 216 Keypoints , 216 Puntos clave 22. Correlated Channels , 22. Canales correlacionados 22.5 Deg. , 22,5 grados. 23. Boundary , 23. Límite 24. Warp Channel(s) , 24. Canal(es) de la urdimbre 25. Random Negation , 25. Negación aleatoria 26. Random Negation Channel(s) , 26. Canal(es) de negación aleatoria 27 Keypoints , 27 Puntos clave 27. Gamma Offset , 27. Compensación Gamma 270 Deg. , 270 grados. 28. Hue Offset , 28. Compensación de tonalidad 29. Normalise , 29. Normalización 2nd , 2º. 2nd Additional Palette (.Gpl) , 2ª Paleta adicional (.Gpl) 2nd Color , 2º Color 2nd Parameter , 2º parámetro 2nd Text , 2º Texto 2nd Tone , 2º Tono 2nd Variance , 2ª Variación 2nd X-Coord , 2º X-Coord 2nd Y-Coord , 2º Y-Coord 2x Type , 2x Tipo 2XY Mirror , Espejo 2XY 3 Colors , 3 colores 3 Grays , 3 Grises 3 Mix , 3 Mezcla 3. Plasma Alpha Channel , 3. Canal Alfa de Plasma 30. Minimum Hue , 30. Tono mínimo 31. Maximum Hue , 31. Tono máximo 32. Minimum Saturation , 32. Saturación mínima 33. Maximum Saturation , 33. Saturación máxima 34. Minimum Value , 34. Valor mínimo 343 Keypoints , 343 Puntos clave 35. Maximum Value , 35. Valor máximo 36. Hue Offset , 36. Compensación de tonalidad 37. Saturation Offset , 37. Compensación de saturación 38. Value Offset , 38. Compensación del valor 3D Blocks , Bloques 3D 3D CLUT (Fast) , 3D CLUT (Rápido) 3D CLUT (Precise) , CLUT 3D (Preciso) 3D Colored Object , Objeto coloreado en 3D 3D Conversion , Conversión 3D 3D Elevation , Elevación 3D 3D Elevation [Animated] , Elevación 3D [Animado] 3D Extrusion , Extrusión 3D 3D Extrusion [Animated] , Extrusión 3D [Animado] 3D Image Object , Objeto de imagen 3D 3D Image Object [Animated] , Objeto de imagen 3D [Animado] 3D Image Type , Tipo de imagen 3D 3D Lathing , Torneado 3D 3D Metaballs , Metabolas 3D 3D Random Objects , Objetos aleatorios en 3D 3D Reflection , Reflexión 3D 3D Rubber Object , Objeto de goma 3D 3D Starfield , Campo estelar en 3D 3D Text Pointcloud , Nube de puntos de texto en 3D 3D Tiles , Azulejos 3D 3D Video Conversion , Conversión de video 3D 3D Waves , Ondas 3D 3rd , Tercero. 3rd Color , 3er Color 3rd Parameter , 3er parámetro 3rd Tone , 3er Tono 3rd X-Coord , 3ª X-Coord 3rd Y-Coord , 3ª cuerda en Y 4 Colors , 4 colores 4 Grays , 4 Grises 4. Segmentation [No Alpha Channel] , 4. Segmentación [Sin canal alfa] 4096x4096 Layer , 4096x4096 Capa 45 Deg. , 45 grados. 4th , 4º. 4th Color , 4º Color 4th Tone , 4º Tono 5. Edge Threshold , 5. Umbral del borde 512x512 Layer , 512x512 Capa 5th , 5º. 5th Color , 5º Color 5th Tone , 5º Tono 6. Smoothness , 6. Suavidad 60's (faded Alt) , 60's (Alt descolorido) 60's (faded) , 60's (descolorido) 64 (Faster) , 64 (Más rápido) 64 Keypoints , 64 Puntos clave 67.5 Deg. , 67,5 grados. 6th , 6º. 6th Color , 6º Color 6th Tone , 6º Tono 7. Blur , 7. Blur 7th , 7º. 7th Color , 7º Color 7th Tone , 7º Tono 8 Colors , 8 Colores 8 Grays , 8 Grises 8 Keypoints (RGB Corners) , 8 Puntos clave (Esquinas RGB) 8. Quadtree Pixelisation [No Alpha Channel] , 8. Pixelización cuádruple [Sin canal alfa] 8th , 8º. 8th Color , 8º Color 8th Tone , 8º Tono 9. Quadtree Min Precision , 9. Precisión mínima de un cuadrípode 90 Deg. , 90 grados. 9th , 9º. 9th Color , 9º Color [Cyan]MYK , MYK A Lot of Cyan , Mucho cian A Lot of Key , Un montón de llave A Lot of Magenta , Mucho magenta A Lot of Yellow , Un montón de amarillo A-Color Factor , Factor A-Color A-Color Shift , Cambio de color A A-Color Smoothness , Suavidad de color A A-Component , Componente A A-Value , Valor A A4 / 100 PPI (Recommended) , A4 / 100 PPI (Recomendado) Abigail Gonzalez (21) , Abigail González (21) About G'MIC , Acerca de G'MIC Absolute Brightness , Brillo absoluto Absolute Value , Valor absoluto Abstraction , Abstracción Acceleration , Aceleración Achromatomaly , Acromatomía Achromatopsia , Acromatopsia Acros , A través de Action , Acción Action #1 , Acción #1 Action #10 , Acción #10 Action #11 , Acción #11 Action #12 , Acción #12 Action #13 , Acción #13 Action #14 , Acción #14 Action #15 , Acción #15 Action #16 , Acción #16 Action #17 , Acción #17 Action #18 , Acción #18 Action #19 , Acción #19 Action #2 , Acción #2 Action #20 , Acción #20 Action #21 , Acción #21 Action #22 , Acción #22 Action #23 , Acción #23 Action #24 , Acción #24 Action #3 , Acción #3 Action #4 , Acción #4 Action #5 , Acción #5 Action #6 , Acción #6 Action #7 , Acción #7 Action #8 , Acción #8 Action #9 , Acción #9 Action Red 01 , Acción Roja 01 Activate 'Pencil Smoother' , Activar el "Alisador de lápices Activate Color Enhancement , Activar la mejora del color Activate Colors Geometric Shapes , Activar los colores de las formas geométricas Activate Custom Filter , Activar el filtro personalizado Activate Lizards , Activar los lagartos Activate Mirror , Activar el espejo Activate Pink Elephants , Activar los elefantes rosados Activate Second Direction , Activar la segunda dirección Activate Shakes , Activar los batidos Activate Slice 1 , Activar la rebanada 1 Activate Slice 2 , Activar la rebanada 2 Activate Slice 3 , Activar la rebanada 3 Activate Slice 4 , Activar la rebanada 4 Adaptive , Adaptable Add , Añade Add 1px Outline , Agregar 1px Esquema Add Alpha Channels to Detail Scale Layers , Añadir los canales alfa a las capas de escala de detalle Add as a New Layer , Añadir como una nueva capa Add Chalk Highlights , Agregar puntos destacados de tiza Add Color Background , Añadir fondo de color Add Comment Area in HTML Page , Agregar área de comentarios en la página HTML Add Grain , Añade el grano Add Image Label , Añadir etiqueta de imagen Add Painter's Touch , Añadir el toque de pintor Add User-Defined Constraints (Interactive) , Añadir restricciones definidas por el usuario (interactivo) Additional Duplicates Count , Los duplicados adicionales cuentan Additional Outline , Esquema adicional Additive , Aditivo Adjust Background Reconstruction , Ajustar la reconstrucción del fondo Adventure 1453 , Aventura 1453 Aggresive , Agresivo Aggressive Highlights Recovery 5 , Agresivo destaca la recuperación 5 Algorithm , Algoritmo Align Image Streams , Alinear los flujos de imágenes Align Layers , Alinear las capas Aligned , Alineado Alignment Type , Tipo de alineación All , Todos All 45° Rotations , Todos los 45° Rotaciones All 90° Rotations , Todos los 90° Rotaciones All [Collage] , Todos [Collage] All but Reference Color , Todo menos el color de referencia All Layers and Masks , Todas las capas y máscaras All Tones , Todos los tonos All XY-Flips , Todos los XY-Flips Allow Angle , Permitir el ángulo Allow Outer Blending , Permitir la mezcla externa Allow Self Intersections , Permitir las intersecciones de sí mismo Alpha , Alfa Alpha Channel , Canal Alfa Alpha Mode , Modo Alfa Also Match Gradients , También se ajustan a los gradientes Ambient (%) , Ambiente (%) Ambient Lightness , La ligereza del ambiente Amount , Cantidad Amplitude , Amplitud Amplitude (%) , Amplitud (%) Amplitude / Angle , Amplitud/ángulo Amstragram , Amstragrama Anaglypgh Green/magenta Optimized , Anaglypgh Green/magenta Optimizado Anaglyph Blue/yellow , Anaglifo Azul/amarillo Anaglyph Blue/yellow Optimized , Anaglifo Azul/amarillo Optimizado Anaglyph Glasses Adjustment , Ajuste de las gafas de anaglifo Anaglyph Green/magenta , Verde anaglifo/magenta Anaglyph Green/magenta Optimized , Verde anaglifo/magenta optimizado Anaglyph Reconstruction , Reconstrucción de anaglifos Anaglyph Red/cyan , Anaglifo Rojo/cyan Anaglyph Red/cyan Optimized , Anaglifo rojo/cyan optimizado Anaglyph: Red/Cyan , Anaglifo: Rojo/Cyan AnalogFX - Sepia Color , AnalogFX - Color Sepia Analysis Scale , Escala de análisis Analysis Smoothness , Análisis Suavidad And , Y Angle , Ángulo Angle (%) , Ángulo (%) Angle (deg) , Ángulo (deg) Angle (deg.) , Ángulo (deg.) Angle / Size , Ángulo / Tamaño Angle Cut , Corte de ángulo Angle Dispersion , Dispersión del ángulo Angle Image Contour , Contorno de la imagen en ángulo Angle of Disturbance Surface , Ángulo de la superficie de la perturbación Angle of Main Nebulous Surface , Ángulo de la superficie nebulosa principal Angle Range , Rango de ángulo Angle Range (deg.) , Rango de ángulo (deg.) Angle Tilt , Inclinación del ángulo Angle Variations , Variaciones de ángulo Anguish , Angustia Angular Precision , Precisión angular Angular Tiles , Baldosas angulares Anisotropic , Anisótropo Anisotropy , Anisotropía Annular Steiner Chain Round Tiles , Cadena anular Steiner Baldosas redondas Antisymmetry , Antisimetría Any , Cualquier Apocalypse This Very Moment , Apocalipsis en este mismo momento Apples , Manzanas Apply Adjustments On , Aplicar los ajustes en Apply Color Balance , Aplicar el balance de color Apply External CLUT , Aplicar CLUT externo Apply Mask , Aplicar la máscara Apply Skin Tone Mask , Aplicar la máscara de tono de piel Apply Transformation From , Aplicar la transformación de Aqua and Orange Dark , Aqua y Naranja oscuro Area , Área Area Smoothness , Suavidad de la zona Areas Light Adjustment , Ajuste de la luz de las áreas Areas Smoothness , Suavidad de las áreas Array [Faded] , Array [descolorido] Array [Mirrored] , Array [Espejo] Array [Random Colors] , Array [Colores aleatorios] Array [Random] , Array [Aleatorio] Array Mode , Modo de arreglo... Arrows , Flechas Arrows (Outline) , Flechas (Esquema) Artistic Modern , Artístico Moderno Artistic Hard , Artístico Duro Artistic Round , Ronda artística Ascii Art , Arte Ascii Aspect , Aspecto Aspect Ratio , Relación de aspecto Associated Color , Color asociado Attenuation , Atenuación Auto Reduce Level (Level Slider Is Disabled) , Nivel de reducción automática (el deslizador de nivel está desactivado) Auto Set Hue Inverse (Hue Slider Is Disabled) , Auto Set Hue Inverse (Hue Slider está deshabilitado) Auto-Clean Bottom Color Layer , Capa de color de fondo de limpieza automática Auto-Reduce Number of Frames , Auto-reducción del número de cuadros Auto-Set Periodicity , Periodicidad del Auto-Set Autocrop Output Layers , Capas de salida de autocorte Automatic , Automático Automatic & Contrast Mask , Máscara automática y de contraste Automatic [Scan All Hues] , Automático [Escanea todas las tonalidades] Automatic Color Balance , Balance de color automático Automatic Depth Estimation , Estimación automática de la profundidad Automatic Upscale for Optimum Results , Aumento automático de la escala para obtener resultados óptimos Autumn , Otoño Avalanche , Avalancha Average , Promedio Average 3x3 , Promedio 3x3 Average 5x5 , Promedio 5x5 Average 7x7 , Promedio 7x7 Average 9x9 , Promedio 9x9 Average RGB , Promedio RGB Average Smoothness , Suavidad media Avg / Max Weight , Peso medio/máximo Avg Left Angle (deg.) , Ángulo izquierdo medio (deg.) Avg Length Factor (%) , Factor de longitud media (%) Avg Right Angle (deg.) , Ángulo recto medio (deg.) Avg Thickness Factor (%) , Factor de espesor medio (%) Axis , Eje Azimuth , Azimut B&W , EN BLANCO Y NEGRO B&W Pencil [Animated] , Lápiz en blanco y negro [Animación] B&W Photograph , Fotografía en blanco y negro B&W Stencil , Plantilla en blanco y negro B&W Stencil [Animated] , B&W Stencil [Animado] B-Color Factor , Factor B-Color B-Color Shift , Cambio de color B B-Color Smoothness , Suavidad del color B B-Component , Componente B Background , Antecedentes Background Color , Color de fondo Background Intensity , Intensidad de fondo Background Point (%) , Punto de fondo (%) Backward , Retrocede Backward Horizontal , Horizontal hacia atrás Backward Vertical , Vertical hacia atrás Balance Color , Equilibrar el color Ball , Bola Balloons , Globos Balls , Bolas Band Width , Ancho de banda Bandwidth , Ancho de banda Barbed Wire , Alambre de púas Bars , Bares Base Reference Dimension , Dimensión de referencia de la base Base Scale , Escala de la base Base Thickness (%) , Espesor de la base (%) Basic Adjustments , Ajustes básicos Batch Processing , Procesamiento por lotes Bayer Filter , Filtro Bayer Bayer Reconstruction , Reconstrucción de Bayer Behind , Detrás de Below , Debajo de Berlin Sky , El cielo de Berlín Best Match , Mejor partido BG Textured , BG Texturizado Bi-Directional , Bi-Direccional Bicubic , Bicúbico Bidirectional [Sharp] , Bidireccional [Sharp] Bidirectional [Smooth] , Bidireccional [Suave] Bidirectional Rendering , Renderización bidireccional Bilateral Radius , Radio bilateral Binary , Binario Binary Digits , Cifras binarias Bit Masking (End) , Enmascaramiento de bits (Fin) Bit Masking (Start) , Enmascaramiento de bits (Inicio) Black , Negro Black & White , Blanco y negro Black & White (25) , Blanco y negro (25) Black & White-1 , Blanco y Negro-1 Black & White-10 , Blanco y Negro-10 Black & White-2 , Blanco y Negro-2 Black & White-3 , Blanco y Negro-3 Black & White-4 , Blanco y Negro-4 Black & White-5 , Blanco y Negro-5 Black & White-6 , Blanco y Negro-6 Black & White-7 , Blanco y Negro-7 Black & White-8 , Blanco y Negro-8 Black & White-9 , Blanco y Negro-9 Black Crayon Graffiti , Graffiti de lápiz negro Black Dices , Dados negros Black Level , Nivel de negro Black on Transparent , Negro sobre transparente Black on Transparent White , Negro sobre blanco transparente Black on White , Negro sobre blanco Black Point , Punto Negro Black Star , Estrella Negra Black to White , Negro a Blanco Blacks , Negros Blank , En blanco Bleach Bypass , Bypass de blanqueo Bleach Bypass 1 , Bypass de blanqueo 1 Bleach Bypass 2 , Bypass de blanqueo 2 Bleach Bypass 3 , Bypass de blanqueo 3 Bleach Bypass 4 , Bypass de blanqueo 4 Bleech Bypass Green , Bleech Bypass Verde Bleech Bypass Yellow 01 , Bleech Bypass Amarillo 01 Blend , Mezcla Blend [Average All] , Mezcla [Promedio de todos] Blend [Edges] , Mezclar [Bordes] Blend [Fade] , Mezcla [Fade] Blend [Median] , Mezcla [Mediana] Blend [Seamless] , Mezcla [sin costura] Blend [Standard] , Mezcla [Estándar] Blend All Layers , Mezclar todas las capas Blend Decay , La mezcla decadencia Blend Mode , Modo de mezcla Blend Rays , Mezclar los rayos Blend Scales , Escalas de mezcla Blend Size , Tamaño de la mezcla Blend Threshold , Umbral de mezcla Blending Mode , Modo de mezcla Blending Size , Tamaño de la mezcla Blindness Type , Tipo de ceguera Blob Size , Tamaño de la mancha Blobs Editor , Editor de Blobs Bloc Size (%) , Tamaño del bloque (%) Blockism , Bloqueo Blue , Azul Blue & Red Chrominances , Crominanzas Azul y Roja Blue Chroma Factor , Factor de croma azul Blue Chroma Shift , Cambio de croma azul Blue Chroma Smoothness , Suavidad del croma azul Blue Chrominance , Crominancia azul Blue Dark , Azul oscuro Blue Factor , Factor Azul Blue House , La Casa Azul Blue Ice , Hielo azul Blue Level , Nivel Azul Blue Mono , Mono Azul Blue Rotations , Rotaciones azules Blue Screen Mode , Modo de pantalla azul Blue Shadows 01 , Sombras Azules 01 Blue Shift , Turno azul Blue Smoothness , Suavidad azul Blue Steel , Acero Azul Blue Wavelength , Longitud de Onda Azul Blue-Green , Azul-Verde Blur [Angular] , Borrón [Angular] Blur [Bloom] , Borrón [Bloom] Blur [Depth-Of-Field] , Blur [Profundidad de campo] Blur [Gaussian] , Borrón [gaussiano] Blur [Glow] , Borrón y cuenta nueva Blur [Linear] , Borrón [Lineal] Blur [Multidirectional] , Blur [Multidireccional] Blur [Radial] , Borrón [Radial] Blur Alpha , Borrar Alfa Blur Amount , Cantidad de borrosidad Blur Amplitude , Amplitud de la borrosidad Blur Dodge and Burn Layer , Desenfocar Dodge y Burn Layer Blur Factor , Factor de borrosidad Blur Frame , Marco borroso Blur Percentage , Borrón Porcentaje Blur Precision , Precisión de la borrosidad Blur Standard Deviation , Desviación estándar de la borrosidad Blur Strength , Fuerza de la borrosidad Blur the Mask , Desenfocar la máscara Boats , Barcos Boost , Impulso Boost Chromaticity , Aumentar la cromaticidad Boost Contrast , Aumentar el contraste Boost Smooth , Impulso Suave Boost Stroke , Impulso de la apoplejía Border Color , Color del borde Border Opacity , Opacidad de la frontera Border Outline , Esquema de la frontera Border Smoothness , Suavidad de la frontera Border Thickness (%) , Espesor de la frontera (%) Border Width , Ancho de la frontera Both , Ambos Bottles , Botellas Bottom , Abajo Bottom and Left Foreground , Abajo y a la izquierda en primer plano Bottom and Right Foreground , Fondo y primer plano a la derecha Bottom and Top Foreground , En primer plano, abajo y arriba Bottom Layer , Capa inferior Bottom Left , Abajo a la izquierda Bottom Right , Abajo a la derecha Bottom Size , El tamaño del fondo Bottom-Left , Abajo a la izquierda Bottom-Left Vertex (%) , Vértice inferior izquierdo (%) Bottom-Right , Abajo-Derecha Bottom-Right Vertex (%) , Vértice inferior derecho (%) Bouncing Balls , Bolas que rebotan Boundaries (%) , Límites (%) Boundary , Límite Boundary Condition , Condición de los límites Boundary Conditions , Condiciones límites Box Fitting , Ajuste de la caja Branches , Ramas Braque: Landscape near Antwerp , Braque: Paisaje cerca de Amberes Braque: Little Bay at La Ciotat , Braque: Pequeña bahía en La Ciotat Braque: The Mandola , Braque: La Mandola Brighness , Brigada Bright , Brillante Bright Green , Verde brillante Bright Green 01 , Verde brillante 01 Bright Length , Longitud brillante Bright Pixels , Píxeles brillantes Bright Teal Orange , Naranja Cerceta Brillante Bright Warm , Brillante Caliente Brighter , Más brillante Brightness , Brillo Brightness (%) , Brillo (%) Bristle Size , El tamaño de las cerdas Bronze , Bronce Brownish , Marrón Brushify , Cepillar Built-in Gray , Gris incorporado Bump Factor , Factor de choque Burn , Quemar Burn Strength , Fuerza de la quemadura Butterfly , Mariposa By Blue Chrominance , Por Blue Chrominance By Blue Component , Por el Componente Azul By Custom Expression , Por expresión personalizada By Green Component , Por el Componente Verde By Iteration , Por Iteración By Lightness , Por la ligereza By Luminance , Por la luminancia By Red Chrominance , Por Crominancia Roja By Red Component , Por el componente rojo By Value , Por valor Camera Motion Only , Sólo el movimiento de la cámara Camera X , Cámara X Camera Y , Cámara Y Cameraman , Camarógrafo Camouflage , Camuflaje Candle Light , La luz de las velas Canvas , Lienzo Canvas Brightness , Brillo del lienzo Canvas Color , Color del lienzo Canvas Darkness , Lienzo Oscuridad Canvas Texture , Textura del lienzo Car , Coche Card Suits , Trajes de cartas Cartesian Transform , Transformación cartesiana Cartoon , Caricatura Cartoon [Animated] , Caricatura [Animada] Cat , Gato Category , Categoría Cell Size , Tamaño de la célula Center , Centro Center (%) , Centro (%) Center Background , Fondo del Centro Center Foreground , Primer plano central Center Help , Ayuda del Centro Center Size , Tamaño del centro Center Smoothness , Suavidad del centro Center X , Centro X Center X-Shift , Centro X-Shift Center Y , Centro Y Center Y-Shift , Desplazamiento Y central Centering (%) , Centrado (%) Centering / Scale , Centrado / Escala Centers Color , Centros de color Centers Radius , Radio de los centros Centimeter , Centímetros Central Perspective Outdoor , Perspectiva central en el exterior Central Perspective Indoor , Perspectiva central en interiores Central Perspective Outdoor , Perspectiva central en el exterior Centre , Centro Chalk It Up , Anota... Channel #1 , Canal 1 Channel #2 , Canal 2 Channel #3 , Canal 3 Channel Processing , Procesamiento del canal Channel(s) , Canal(es) Channels , Canales Channels to Layers , Canales a las capas Charcoal , Carbón vegetal Checkered , A cuadros Checkered Inverse , A cuadros invertidos Chemical 168 , Química 168 Chessboard , Tablero de ajedrez Chroma Noise , Ruido cromático Chromatic Aberrations , Aberraciones cromáticas Chromaticity From , La cromaticidad de Chrome 01 , Cromo 01 Chrominances Only (ab) , Sólo crominanzas (ab) Chrominances Only (CbCr) , Sólo crominanzas (CbCr) Cinema , Cine Cinema 2 , Cine 2 Cinema 3 , Cine 3 Cinema 4 , Cine 4 Cinema 5 , Cine 5 Cinema Noir , Cine Negro Cinematic (8) , Cinematográfico (8) Cinematic for Flog , Cine para Flog Cinematic Lady Bird , La Dama Pájaro Cinematográfica Cinematic Mexico , El México cinematográfico Cinematic Travel (29) , Viajes al cine (29) Cinematic-01 , Cinemática-01 Cinematic-03 , Cinemática-03 Cinematic-1 , Cinemático-1 Cinematic-5 , Cinemático-5 Cinematic-6 , Cinemático-6 Cinematic-8 , Cinemático-8 Circle , Círculo Circle (Inv.) , Círculo (Inv.) Circle 1 , Círculo 1 Circle 2 , Círculo 2 Circle Abstraction , Abstracción del círculo Circle Art , Arte en círculo Circle to Square , Círculo a cuadrado Circle Transform , Transformación del círculo Circles , Círculos Circles (Outline) , Círculos (Esquema) Circles 1 , Círculos 1 Circles 2 , Círculos 2 City 7 , Ciudad 7 Clarity , Claridad Classic Chrome , Cromo clásico Classic Teal and Orange , Clásico Teal y Orange Clean , Limpia Clean Text , Texto limpio Clear Control Points , Despejar los puntos de control Clear Teal Fade , Desvanecimiento de la cerceta clara Cliff , Acantilado Closeup , Primer plano Closing , Cierre Closing - Opening , Cierre - Apertura Closing - Original , Cierre - Original Clouds , Nubes CLUT from After - Before Layers , CLUT de Después - Antes de las capas CLUT Opacity , Opacidad del CLUT CM[Yellow]K , CM[Amarillo]K CMY[Key] , CMY [Clave] CMYK [cyan] , CMYK [cian] CMYK [Key] , CMYK [Clave] CMYK [Yellow] , CMYK [Amarillo] CMYK Tone , Tono CMYK Coarse , Grueso Coarsest (faster) , Más grueso (más rápido) Code , Código Coefficients , Coeficientes Coffee 44 , Café 44 Coherence , Coherencia Cold Clear Blue , Azul claro y frío Cold Clear Blue 1 , Azul claro y frío 1 Cold Simplicity 2 , Fría Simplicidad 2 Color (rich) , Color (rico) Color 1 (Up/Left Corner) , Color 1 (arriba/izquierda) Color 2 (Up/Right Corner) , Color 2 (Arriba/A la derecha) Color 3 (Bottom/Left Corner) , Color 3 (Esquina inferior/izquierda) Color 4 (Bottom/Right Corner) , Color 4 (Esquina inferior/derecha) Color Abstraction Opacity , Opacidad de Abstracción de Color Color Abstraction Paint , Pintura de Abstracción de Color Color Balance , Equilibrio de color Color Basis , Base de color Color Blending , Mezcla de colores Color Blindness , El daltonismo Color Blue-Yellow , Color Azul-Amarillo Color Boost , Aumento del color Color Burn , Quemadura de color Color Channel Smoothing , Suavizar el canal de color Color Channels , Canales de color Color Dispersion , Dispersión del color Color Doping , Dopaje de color Color Effect Mode , Modo de efecto de color Color Grading , Gradación de color Color Green-Magenta , Color Verde-Magenta Color Highlights , Los colores más destacados Color Image , Imagen de color Color Intensity , Intensidad de color Color Mask , Máscara de color Color Mask [Interactive] , Máscara de color [Interactivo] Color Median , Mediana de color Color Metric , Color Métrico Color Midtones , Tonos medios de color Color Mode , Modo de color Color Model , Modelo de color Color Negative , Color Negativo Color on White , Color sobre blanco Color Overall Effect , Efecto general del color Color Presets , Preselecciones de color Color Quantization , Cuantificación del color Color Rendering , Rendimiento de color Color Shading (%) , Sombreado de color (%) Color Shadows , Sombras de color Color Smoothness , Suavidad de color Color Space , Espacio de color Color Spots + Extrapolated Colors + Lineart , Manchas de color + Colores extrapolados + Lineal Color Spots + Lineart , Manchas de color + Lineal Color Strength , La fuerza del color Color Temperature , La temperatura del color Color Tolerance , Tolerancia de color Color Variation [Random -1] , Variación de color [Aleatorio -1] Colored Geometry , La geometría de color Colored Grain , Grano de color Colored Lineart , Lineart de color Colored on Black , Coloreado en negro Colored on Transparent , Coloreado en transparente Colored Outline , Esquema de color Colored Pencils , Lápices de color Colored Regions , Regiones de color Colorful , Colorido Colorful 0209 , Colorido 0209 Colorful Blobs , Glóbulos de colores Coloring , Coloración Colorize [Interactive] , Colorear [Interactivo] Colorize [Photographs] , Colorear [Fotografías] Colorize [with Colormap] , Colorear [con Colormap] Colorize Lineart [Auto-Fill] , Colorear Lineart [Auto-llenado] Colorize Lineart [Propagation] , Colorear Lineart [Propagación] Colorize Lineart [Smart Coloring] , Colorear Lineart [Coloración inteligente] Colorize Mode , Modo de coloración Colorized Image (1 Layer) , Imagen coloreada (1 capa) Colormap Type , Tipo de Colormap Colors , Colores Colors A , Colores A Colors B , Colores B Colors Only , Sólo colores Colors Only (1 Layer) , Sólo colores (1 capa) Colors to Layers , Colores a capas Colorspace , Espacio de color Colour , Color Colour Channels , Canales de color Colour Model , Modelo de color Colour Smoothing , Suavizar los colores Colour Space Mode , Modo de espacio de color Column by Column , Columna por columna Comic Style , Estilo Cómic Components , Componentes Composed Layers , Capas compuestas Compress Highlights , Comprimir lo más destacado Compression Blur , Borrón de compresión Compression Filter , Filtro de compresión Computation Mode , Modo de cálculo Cone , Cono Conflict 01 , Conflicto 01 Conformal Maps , Mapas conformes Connectivity , Conectividad Connectors Centering , Centrado de los conectores Connectors Variability , Variabilidad de los conectores Constrain Image Size , Limitar el tamaño de la imagen Constrain Values , Limitar los valores Constrained Sharpen , Afilado restringido Constraint Radius , Radio de restricción Continuous Droste , Droste continuo Contour Coherence , Coherencia del contorno Contour Detection (%) , Detección de contorno (%) Contour Normalization , Normalización del contorno Contour Precision , Precisión del contorno Contour Threshold , Umbral del contorno Contour Threshold (%) , Umbral del contorno (%) Contours , Contornos Contours + Flocon/Snowflake , Contornos + Flocon/Snowflake Contours Recursion , Recursión de los contornos Contrast , Contraste Contrast (%) , Contraste (%) Contrast Smoothness , Suavidad de contraste Contrast Swiss Mask , Contraste de la máscara suiza Contrast with Highlights Protection , Contrasta con la protección de los Highlights Contrasty Afternoon , Contraste de la tarde Contrasty Green , Contraste Verde Contributors , Colaboradores Control Point 1 , Punto de control 1 Control Point 2 , Punto de control 2 Control Point 3 , Punto de control 3 Control Point 4 , Punto de control 4 Control Point 5 , Punto de control 5 Control Point 6 , Punto de control 6 Convolve , Involucrar Cool , Genial Cool (256) , Genial (256) Cool / Warm , Frío / Caliente Copper , Cobre Corner Brightness , Brillo de la esquina Correlated Channels , Canales correlacionados Counter Clockwise , En el sentido contrario a las agujas del reloj Course 4 , Curso 4 Cracks , Grietas Crease , Pliegue Creative Pack (33) , Paquete creativo (33) Crisp Romance , Romance nítido Crisp Warm , Caliente y crujiente Criterion , Criterio Crop (%) , Cultivo (%) Cross Process CP 130 , Proceso cruzado CP 130 Cross Process CP 14 , Proceso cruzado CP 14 Cross Process CP 15 , Proceso cruzado CP 15 Cross Process CP 16 , Proceso cruzado CP 16 Cross Process CP 18 , Proceso cruzado CP 18 Cross Process CP 3 , Proceso cruzado CP 3 Cross Process CP 4 , Proceso cruzado CP 4 Cross Process CP 6 , Proceso cruzado CP 6 Cross-Hatch Amount , Cantidad de la escotilla cruzada Crossed , Cruzó Crosses 1 , Cruces 1 Crosses 2 , Cruces 2 CRT Sub-Pixels , Sub-píxeles del CRT Crystal , Cristal Crystal Background , Fondo de cristal Cube , Cubo Cube (256) , Cubo (256) Cubic , Cúbico Cubicle 99 , Cubículo 99 Cubism , Cubismo Cubism on Color Abstraction , El cubismo en la abstracción del color Cup , Copa Cupid , Cupido Curvature , Curvatura Curvature Shadow , Sombra de curvatura Curve Amount , Cantidad de la curva Curve Angle , Ángulo de la curva Curve Length , Longitud de la curva Curved , Curva Curved Stroke , Trazo curvo Curves , Curvas Curves Previously Defined , Curvas previamente definidas Custom , Personalizado Custom Code [Global] , Código personalizado [Global] Custom Code [Local] , Código personalizado [Local] Custom Correction Map , Mapa de corrección personalizado Custom Depth Correction , Corrección de profundidad personalizada Custom Depth Maps Stream , Flujo de mapas de profundidad personalizados Custom Dictionary , Diccionario personalizado Custom Filter Code , Código de filtro personalizado Custom Formula , Fórmula personalizada Custom Kernel , Kernel personalizado Custom Layers , Capas personalizadas Custom Layout , Diseño personalizado Custom Style (Bottom Layer) , Estilo personalizado (capa inferior) Custom Style (Top Layer) , Estilo personalizado (capa superior) Custom Transform , Transformación personalizada Customize CLUT , Personalizar CLUT Cut , Cortar Cut & Normalize , Cortar y normalizar Cut High , Cortar en alto Cut Low , Cortar bajo... Cutout , Recorte Cyan Factor , Factor Cian Cyan Shift , Cambio de Cian Cyan Smoothness , Suavidad del cian Cycle Layers , Capas de ciclo Cycles , Ciclos Cylinder , Cilindro D and O 1 , D y O 1 Damping per Octave , Amortiguación por octava Dark Motive , Motivo oscuro Dark Blues in Sunlight , Los azules oscuros a la luz del sol Dark Color , Color oscuro Dark Edges , Bordes oscuros Dark Green 02 , Verde oscuro 02 Dark Green 1 , Verde oscuro 1 Dark Grey , Gris oscuro Dark Length , Longitud de la oscuridad Dark Motive , Motivo oscuro Dark Pixels , Píxeles oscuros Dark Place 01 , Lugar oscuro 01 Dark Screen , Pantalla oscura Dark Sky , Cielo oscuro Dark Walls , Paredes oscuras Darker , Más oscuro Darkness , Oscuridad Darkness Level , Nivel de oscuridad Date 39 , Fecha 39 Day for Night , El día por la noche Daylight Scene , Escena de luz diurna De-Anaglyph , De-Anaglifo Debug Font Size , Tamaño de la fuente de depuración Decagon , Decágono Decompose , Descomponer Decompose Channels , Descomponer los canales Decoration , Decoración Decreasing , Disminuyendo Deep , Profundo Deep Dark Warm , Calor profundo y oscuro Deep High Contrast , Contraste profundo y alto Deep Teal Fade , Desvanecimiento de la cerceta profunda Default , Por defecto Defects Contrast , Contraste de defectos Defects Density , Densidad de defectos Defects Size , Tamaño de los defectos Defects Smoothness , Defectos Suavidad Deform , Deformar Deinterlace2x , Desentrelazar2x Delaunay: Portrait De Metzinger , Delaunay: Retrato de Metzinger Delaunay: Windows Open Simultaneously , Delaunay: Las ventanas se abren simultáneamente Delete Layer Source , Borrar la fuente de la capa Density , Densidad Density (%) , Densidad (%) Depth , Profundidad Depth Fade In Frames , La profundidad se desvanece en los marcos Depth Fade Out Frames , Los marcos de profundidad se desvanecen Depth Field Control , Control del campo de profundidad Depth Map , Mapa de profundidad Depth Map Construction , Construcción del mapa de profundidad Depth Map Only , Sólo el mapa de profundidad Depth Map Reconstruction , Reconstrucción del mapa de profundidad Depth Maps Only , Sólo mapas de profundidad Depth-Of-Field Type , Tipo de profundidad de campo Desaturate , Desaturación Desaturate (%) , Desaturación (%) Desaturate Norm , Norma de Desaturación Descent Method , Método de descenso Desert Gold 37 , Oro del Desierto 37 Destination (%) , Destino (%) Destination X-Tiles , Destino X-Tiles Destination Y-Tiles , Destino Y-Tiles Detail , Detalle Detail Level , Nivel de detalle Detail Reconstruction Detection , Detalle de la detección de la reconstrucción Detail Reconstruction Smoothness , Detalle Reconstrucción Suavidad Detail Reconstruction Strength , Detalle de la fuerza de reconstrucción Detail Reconstruction Style , Detalle del estilo de reconstrucción Detail Scale , Escala de detalles Detail Strength , Fuerza de detalle Details , Detalles Details Amount , Detalles Cantidad Details Equalizer , Detalles Ecualizador Details Scale , Detalles Escala Details Smoothness , Detalles Suavidad Details Strength (%) , Detalles Fuerza (%) Detect Skin , Detectar la piel Deuteranomaly , Deuteranomalía Deuteranopia , Deuteranopía Deviation , Desviación Diamond , Diamante Diamond (Inv.) , Diamante (Inv.) Diamonds , Diamantes Diamonds (Outline) , Diamantes (Esquema) Dices with Colored Numbers , Dados con números de color Dices with Colored Sides , Dados con lados de color Difference , Diferencia Difference Mixing , Mezcla de diferencias Difference of Gaussians , Diferencia de los gausianos Different Axis , Eje diferente Diffuse (%) , Difuso (%) Diffuse Shadow , Sombra difusa Diffusion , Difusión Diffusion Tensors , Tensores de difusión Diffusivity , Difusividad Digits , Cifras Dilatation , Dilatación Dilate , Dilata Dilation , Dilatación Dilation - Original , Dilatación - Original Dilation / Erosion , Dilatación / Erosión Dimension , Dimensión Dimension [Diff] , Dimensión [Diff] Dimension A , Dimensión A Dimensions (%) , Dimensiones (%) Dimensions Pixels , Dimensiones Píxeles Dipole: 1/(4*z^2-1) , Dipolo: 1/(4*z^2-1) Direct , Directo Direction , Dirección Directions 23 , Direcciones 23 Dirty , Sucio Disable , Desactivar Disabled , Discapacitados Discard Contour Guides , Desechar las guías de contorno Discard Transparency , Desechar la transparencia Disco , Discoteca Display , Pantalla Display Blob Controls , Mostrar los controles de manchas Display Color Axes , Mostrar los ejes de color Display Contours , Contornos de la pantalla Display Coordinates , Mostrar las coordenadas Display Coordinates on Preview Window , Mostrar las coordenadas en la ventana de vista previa Display Debug Info on Preview , Mostrar información de depuración en la vista previa Distance , Distancia Distance (Fast) , Distancia (Rápido) Distance Transform , Transformación de la distancia Distort Lens , Distorsionar la lente Distortion Factor , Factor de distorsión Distortion Surface Angle , Ángulo de la superficie de distorsión Distortion Surface Position , Posición de la superficie de distorsión Disturbance Scale-By-Factor , Escala de perturbaciones según el factor Disturbance X , Perturbación X Disturbance Y , Perturbación Y Dither Output , Salida de Dither Divide , Dividir Do Not Flatten Transparency , No aplastar la transparencia Dodge and Burn , Esquivar y quemar Dodge Strength , Fuerza de Esquivar DOF Analyzer , Analizador DOF Dog , Perro Don't Sort , No lo clasifiques. Dot Size , Tamaño de punto Dots , Puntos Download External Data , Descarga de datos externos Dragon Curve , Curva del Dragón Dragonfly , Libélula Drawing Mode , Modo de dibujo Drawn Montage , Dibujó Montage Dream , Sueño Dream 1 , Sueño 1 Dream 85 , Sueño 85 Dream Smoothing , Suavizar los sueños Drop Green Tint 14 , Tinte verde de la gota 14 Drop Water , Gota de agua Duck , Pato Duplicate Bottom , Duplicar el fondo Duplicate Horizontal , Duplicar Horizontal Duplicate Left , Duplicar a la izquierda Duplicate Right , Duplicar a la derecha Duplicate Top , Duplicar la parte superior Duplicate Vertical , Duplicar la vertical Duration , Duración Dynamic Range Increase , Aumento del rango dinámico Earth , Tierra Earth Tone Boost , Aumento del tono de la Tierra Easy Skin Retouch , Retoque fácil de la piel Edge Antialiasing , Antialiasing de bordes Edge Attenuation , Atenuación del borde Edge Behavior X , Comportamiento del borde X Edge Behavior Y , Comportamiento del borde Y Edge Detect Includes Chroma , La detección de bordes incluye el croma Edge Fidelity , Fidelidad al borde Edge Influence , Influencia del borde Edge Mask , Máscara de borde Edge Sensitivity , Sensibilidad de los bordes Edge Simplicity , Simplicidad del borde Edge Smoothness , Suavidad de los bordes Edge Thickness , Espesor del borde Edge Threshold , Umbral del borde Edge Threshold (%) , Umbral del borde (%) Edges , Bordes Edges (%) , Bordes (%) Edges [Animated] , Bordes [Animado] Edges Offsets , Compensación de bordes Edges on Fire , Bordes en llamas Edges-0.5 (beware: Memory-Consuming!) , Edges-0.5 (cuidado: ¡consumo de memoria!) Edges-1 (beware: Memory-Consuming!) , Edges-1 (cuidado: ¡consumo de memoria!) Edges-2 (beware: Memory-Consuming!) , Edges-2 (cuidado: ¡consumo de memoria!) Effect Strength , Fuerza del efecto Effect X-Axis Scaling , Escalado de efecto en el eje X Effect Y-Axis Scaling , Efecto Escalado del eje Y Eight Layers , Ocho capas Eight Threads , Ocho hilos Elegance 38 , Elegancia 38 Elephant , Elefante Elevation , Elevación Elevation (%) , Elevación (%) Ellipse Painting , La pintura de la Elipse Ellipse Ratio , Relación de Elipse Ellipsionism , Elipsionismo Ellipsionism Opacity , Opacidad del elipsionismo Ellipsoid , Elipsoide Enable Antialiasing , Habilitar el antialiasing Enable Interpolated Motion , Habilitar el movimiento interpolado Enable Morphology , Habilitar la morfología Enable Paintstroke , Activar Paintstroke Enable Segmentation , Habilitar la segmentación Enchanted , Encantado End Color , Color final End Frame Number , Número de cuadro final End of Mid-Tones , Fin de los tonos medios End Point Connectivity , Conectividad del punto final End Point Rate (%) , Tasa de punto final (%) Ending Angle , Ángulo final Ending Color , Color final Ending Feathering , Terminar de emplumar Ending Point (%) , Punto final (%) Ending Scale (%) , Escala final (%) Ending Value , Valor final Ending X-Centering , Terminando el X-Centrado Ending Y-Centering , Terminar el centrado en Y Engrave , Grabar Enhance Detail , Mejorar el detalle Enhance Details , Mejorar los detalles Equalization , Ecualización Equalization (%) , Igualación (%) Equalize , Iguala Equalize and Normalize , Igualar y normalizar Equalize at Each Step , Igualar en cada paso Equalize HSI-HSL-HSV , Igualar HSI-HSL-HSV Equalize HSV , Igualar el HSV Equalize Light , Igualar la luz Equalize Local Histograms , Igualar los histogramas locales Equalize Shadow , Igualar la Sombra Equation Plot [Parametric] , Gráfica de la ecuación [paramétrica] Equation Plot [Y=f(X)] , Gráfica de la ecuación [Y=f(X)] Equirectangular to Nadir-Zenith , Equivalente al Nadir-Zenith Erosion , Erosión Erosion / Dilation , Erosión / Dilatación Etch Tones , Tonos de grabado Eterna for Flog , Eterna para Flog Euclidean , Euclidiano Euclidean - Polar , Euclidiano - Polar Exclusion , Exclusión Expand , Ampliar Expand Background Reconstruction , Ampliar Reconstrucción del fondo Expand Shadows , Expandir las sombras Expand Size , Ampliar el tamaño Expanding Mirrors , Espejos en expansión Expired (fade) , Caducado (desvanecerse) Expired (polaroid) , Caducado (polaroid) Expired 69 , Expiró 69 Exponent , Exponente Exponent (Imaginary) , Exponente (imaginario) Exponent (Real) , Exponente (Real) Exponential , Exponencial Export RGB-565 File , Exportar el archivo RGB-565 Exposure , Exposición Expression , Expresión Extend 1px , Extender 1px External Transparency , Transparencia externa Extra Smooth , Extra Suave Extract Foreground [Interactive] , Extraer el primer plano [Interactivo] Extract Objects , Extraer objetos Extrapolate Color Spots on Transparent Top Layer , Extrapolar las manchas de color en la capa superior transparente Extrapolate Colors As , Extrapolar los colores como Extrapolated Colors + Lineart , Colores extrapolados + Lineal Extreme , Extremo Fade End (%) , Fin del desvanecimiento (%) Fade Layers , Capas de desvanecimiento Fade Start , Inicio del desvanecimiento Fade Start (%) , Inicio del desvanecimiento (%) Fade to Green , Desaparecer a Verde Faded , Desaparecido Faded (alt) , Descolorido (alt) Faded (analog) , Desvanecido (analógico) Faded (extreme) , Desaparecido (extremo) Faded (vivid) , Desvanecido (vívido) Faded 47 , Desvanecido 47 Faded Green , Verde apagado Faded Look , Mirada descolorida Faded Print , Impresión descolorida Faded Retro 01 , Retro 01 descolorido Faded Retro 02 , Retro 02 descolorido Fading , Desapareciendo Fading Shape , Forma de desvanecimiento Fall Colors , Colores de otoño Far Point Deviation , Desviación del punto lejano Fast , Rápido Fast (Approx.) , Rápido... 40... aprox... 41..; Fast (Low Precision) Preview , Previsión rápida (baja precisión) Fast Approximation , Aproximación rápida Fast Blend , Mezcla rápida Fast Blend Preview , Vista previa de Fast Blend Fast Recovery , Rápida recuperación Fast Resize , Cambio rápido de tamaño Faux Infrared , Infrarrojo falso Feathering , Plumas Feature Analyzer Smoothness , Características del analizador Suavidad Feature Analyzer Threshold , Umbral del analizador de características Felt Pen , Pluma de fieltro FFT Preview , Vista previa de la FFT Fibers , Fibras Fibers Amplitude , Amplitud de las fibras Fibers Smoothness , Suavidad de las fibras Fibrousness , Fibrosidad Fidelity Chromaticity , Fidelidad Cromaticidad Fidelity Smoothness (Coarsest) , Fidelidad Suavidad (más gruesa) Fidelity Smoothness (Finest) , Fidelidad Suavidad (Finest) Fidelity to Target (Coarsest) , Fidelidad al objetivo (más grueso) Fidelity to Target (Finest) , Fidelidad al objetivo (Finest) Filename , Nombre de archivo Fill Holes , Llenar los agujeros Fill Holes % , Rellenar agujeros % Fill Transparent Holes , Rellenar los agujeros transparentes Filled , Llenado Filled Circles , Círculos llenos Filling , Llenando Film 0987 , Película 0987 Film 9879 , Película 9879 Film Highlight Contrast , Contraste de la película Filmic , Película Filter Design , Diseño del filtro Final Image , Imagen final Fine , Bien Fine 2 , Bien 2 Fine Details Smoothness , Detalles finos Suavidad Fine Details Threshold , Detalles finos Umbral Fine Noise , Ruido fino Fine Scale , Escala fina Finest (slower) , Más fino (más lento) Finger Paint , Pintura de dedos Finger Size , El tamaño de los dedos Fire Effect , Efecto del fuego Fireworks , Fuegos artificiales First , Primero First Color , Primer color First Frame , Primer cuadro First Offset , Primera compensación First Radius , Primer radio First Size , Primer tamaño Fish-Eye , Ojo de pez Fish-Eye Effect , Efecto ojo de pez Fitting Function , Función de ajuste Five Layers , Cinco capas Flag , Bandera Flag (256) , Bandera (256) Flat , Piso Flat 30 , Piso 30 Flat Color , Color plano Flat Regions Removal , Eliminación de regiones planas Flat-Shaded , Sombra plana Flatness , Planitud Flip & Rotate Blocs , Voltear y rotar los bloques Flip Cross-Hatch , Voltear la escotilla cruzada Flip Left / Right , Voltear a la izquierda/derecha Flip Left/Right , Voltear a la izquierda/derecha Flip The Pattern , Voltear el patrón Flip Tolerance , Tolerancia a la voltereta Flower , Flor Foggy Night , Noche de niebla Folder Name , Nombre de la carpeta Font Colors , Colores de las fuentes Font Height (px) , Altura de la fuente (px) Force Gray , Fuerza Gris Force Re-Download from Scratch , Forzar la descarga desde cero Force Tiles to Have Same Size , Forzar a los azulejos a tener el mismo tamaño Force Transparency , Fuerza Transparencia Foreground Color , Color de primer plano Form , Formulario Formula , Fórmula Forward , Adelante Forward Horizontal , Horizontal hacia adelante Forward Horizontal , Horizontal hacia adelante Forward Vertical , Vertical hacia adelante Four Layers , Cuatro capas Four Threads , Cuatro hilos Fourier Analysis , Análisis de Fourier Fourier Filtering , Filtro de Fourier Fourier Transform , Transformación de Fourier Fourier Watermark , Marca de agua de Fourier Fractal Noise , Ruido fractal Fractal Points , Puntos fractales Fractal Set , Conjunto fractal Fractal Whirl , Remolino fractal Fractalize , Fracturar Fractured Clouds , Nubes fracturadas Fragment Blur , Desenfoque de fragmentos Frame (px) , Marco (px) Frame [Blur] , Marco [Borrón] Frame [Cube] , Marco [Cubo] Frame [Fuzzy] , Marco [Fuzzy] Frame [Mirror] , Marco [Espejo] Frame [Painting] , Marco [Pintura] Frame [Pattern] , Marco [Patrón] Frame [Regular] , Marco [Regular] Frame [Round] , Marco [Redondo] Frame [Smooth] , Marco [Suave] Frame as a New Layer , Enmarcar como una nueva capa Frame Color , Color del marco Frame Files Format , Formato de los archivos del marco Frame Format , Formato del marco Frame Size , Tamaño del cuadro Frame Skip , Saltar marco Frame Type , Tipo de cuadro Frame Width , Ancho del marco Frames , Marcos Frames Offset , Compensación de cuadros Freaky Details , Detalles extraños Freeze , Congelar French Comedy , Comedia francesa Frequency , Frecuencia Frequency (%) , Frecuencia (%) Frequency Analyzer , Analizador de frecuencia Frequency Range , Gama de frecuencias Freqy Pattern , Patrón de frecuencia Friends Hall of Fame , Salón de la Fama de los Amigos From Input , De la entrada From Reference Color , Desde el color de referencia Frosted Beach Picnic , Picnic en la playa de Frosted Fruits , Frutas Fuji FP-100c -- , Fuji FP-100c... Fuji FP-100c Negative , Fuji FP-100c Negativo Fuji FP-100c Negative + , Fuji FP-100c Negativo + Fuji FP-100c Negative ++ , Fuji FP-100c Negativo ++ Fuji FP-100c Negative +++ , Fuji FP-100c Negativo +++ Fuji FP-100c Negative ++a , Fuji FP-100c Negativo ++a Fuji FP-100c Negative - , Fuji FP-100c Negativo - Fuji FP-100c Negative -- , Fuji FP-100c Negativo... Fuji FP-3000b -- , Fuji FP-3000b... Fuji FP-3000b Negative , Fuji FP-3000b Negativo Fuji FP-3000b Negative + , Fuji FP-3000b Negativo + Fuji FP-3000b Negative ++ , Fuji FP-3000b Negativo ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Negativo +++ Fuji FP-3000b Negative - , Fuji FP-3000b Negativo - Fuji FP-3000b Negative -- , Fuji FP-3000b Negativo... Fuji FP-3000b Negative Early , Fuji FP-3000b Negativo Temprano Full , Completo Full (Allows Multi-Layers) , Completo (permite multicapas) Full (Slower) , Lleno (más lento) Full Bottom/top , Completo Abajo/arriba Full Colors , A todo color Full HD Frame Packing , Paquete de marcos Full HD Full Layer Stack -Slow!- , Pila de capas completas -¡Lento!- Full Side by Side Keep Uncompressed , Completamente de lado a lado, manténganse descomprimidos Full Side by Side Keep Width , Completo Lado a lado Mantener el ancho Full Side by Uncompressed , Lado completo por Uncompressed Fusion 88 , Fusión 88 G'MIC Operator , Operador G'MIC G/M Smoothness , Suavidad G/M Gain , Gane Games & Demos , Juegos y demostraciones Gamma Balance , Balance Gamma Gamma Compensation , Compensación Gamma Gamma Equalizer , Ecualizador Gamma Gaussian , Gaussiano Gear , Engranaje Generate Random-Colors Layer , Generar una capa de colores aleatorios Generic Fuji Astia 100 , Genérico Fuji Astia 100 Generic Fuji Provia 100 , Genérico Fuji Provia 100 Generic Fuji Velvia 100 , Genérico Fuji Velvia 100 Generic Kodachrome 64 , Genérico Kodachrome 64 Generic Kodak Ektachrome 100 VS , Genérico Kodak Ektachrome 100 VS Generic Skin Structure , Estructura genérica de la piel Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Modo Suave (anula el Brillo Mínimo y la Relación Mínima Rojo:Azul) Geometry , Geometría Global Mapping , Cartografía mundial Gmicky & Wilber (by Mahvin) , Gmicky & Wilber (por Mahvin) Gmicky (by Deevad) , Gmicky (por Deevad) Gmicky (by Mahvin) , Gmicky (por Mahvin) Going for a Walk , Salir a pasear Gold , Oro Golden (bright) , Dorado (brillante) Golden (fade) , Dorado (se desvanece) Golden (mono) , Dorado (mono) Golden (vibrant) , Dorado (vibrante) GoldFX - Bright Spring Breeze , GoldFX - Brisa brillante de primavera GoldFX - Bright Summer Heat , GoldFX - Brillante calor de verano GoldFX - Hot Summer Heat , GoldFX - Calor de verano GoldFX - Perfect Sunset 01min , GoldFX - Atardecer perfecto 01min GoldFX - Perfect Sunset 05min , GoldFX - Atardecer perfecto 05min GoldFX - Perfect Sunset 10min , GoldFX - Atardecer perfecto 10min GoldFX - Spring Breeze , GoldFX - Brisa de Primavera GoldFX - Summer Heat , GoldFX - El calor del verano Good Morning , Buenos días. Gradient , Gradiente Gradient [Corners] , Gradiente [Esquinas] Gradient [Custom Shape] , Gradiente [Forma personalizada] Gradient [from Line] , Gradiente [de la línea] Gradient [Linear] , Gradiente [Lineal] Gradient [Radial] , Gradiente [Radial] Gradient [Random] , Gradiente [Aleatorio] Gradient Norm , Norma de gradiente Gradient Preset , Gradiente preestablecido Gradient RGB , Gradiente RGB Gradient Smoothness , Suavidad gradual Gradient Values , Valores graduales Grain , Grano Grain (Highlights) , Grano (Highlights) Grain (Midtones) , Grano (Midtones) Grain (Shadows) , Grano (Sombras) Grain Extract , Extracto de grano Grain Merge , Fusión de granos Grain Only , Sólo grano Grain Scale , Escala del grano Grain Tone Fading , Desvanecimiento del tono del grano Grain Type , Tipo de grano Grainextract , Extracto de grano Granularity , Granularidad Graphic Boost , Aumento de la gráfica Graphic Colours , Colores de los gráficos Graphic Novel , Novela gráfica Graphix Colors , Colores de Grafito Grayscale , Escala de grises Greece , Grecia Green , Verde Green 15 , Verde 15 Green 2025 , Verde 2025 Green Action , Acción Verde Green Afternoon , Tarde verde Green Blues , Green Blues... Green Conflict , Conflicto verde Green Day 01 , Día verde 01 Green Day 02 , Día Verde 02 Green Factor , Factor verde Green G09 , Verde G09 Green Indoor , Verde Interior Green Level , Nivel verde Green Light , Luz verde Green Mono , Mono verde Green Rotations , Rotaciones verdes Green Shift , Cambio verde Green Smoothness , Suavidad verde Green Wavelength , Longitud de Onda Verde Green Yellow , Verde Amarillo Green-Blue , Verde-Azul Green-Red , Verde-Rojo Greenish Contrasty , Contraste verdoso Greenish Fade , Desvanecimiento verdoso Greenish Fade 1 , Desvanecimiento verdoso 1 Grey , Gris Greyscale , Escala de grises Grid , Cuadrícula Grid [Cartesian] , Rejilla [cartesiana] Grid [Hexagonal] , Rejilla [Hexagonal] Grid [Triangular] , Rejilla [Triangular] Grid Divisions , Divisiones de la red Grid Smoothing , Suavizado de la red Grid Width , Ancho de la red Grow Alpha , Crece Alfa Guide As , Guía como Guide Mix , Guía Mixta Guide Recovery , Guía de recuperación Gum Leaf , Hoja de goma de mascar H Cutoff , Corte H Hair Locks , Rizos de pelo HaldCLUT Filename , HaldCLUT Nombre de archivo Half Bottom/top , Medio abajo/arriba Half Side by Side , Medio lado a lado Halftone , Medio tono Halftone Shapes , Formas de medios tonos Hanoi Tower , Torre de Hanoi Happyness 133 , Felicidad 133 Hard , Duro Hard Light , Luz dura Hard Mix , Mezcla dura Hard Sketch , Bosquejo duro Hard Teal Orange , Naranja de la cerceta dura Hardlight , Harddlight Harsh Day , Un día duro Harsh Sunset , Atardecer duro... HDR Effect (Tone Map) , Efecto HDR (Mapa de tonos) Heart , Corazón Hearts , Corazones Hearts (Outline) , Corazones (Resumen) Height , Altura Height (%) , Altura (%) Hexagon , Hexágono High , Alto High (Slower) , Alto (más lento) High Frequency , Alta frecuencia High Frequency Layer , Capa de alta frecuencia High Pass , Paso alto High Quality , Alta calidad High Scale , Escala alta High Speed , Alta velocidad... High Value , Alto valor Higher Mask Threshold (%) , Umbral de máscara más alto (%) Highlight , Destacar Highlight (%) , Destacar (%) Highlight Bloom , Destacar a Bloom Highlights , Lo más destacado Highlights Abstraction , Destaca la abstracción Highlights Brightness , Destaca el brillo Highlights Color Intensity , Destaca la intensidad del color Highlights Crossover Point , Destaca el punto de cruce Highlights Hue , Destaca el tono Highlights Lightness , Destaca la ligereza Highlights Protection , Destaca la protección Highlights Selection , Selección de destacados Highlights Threshold , Destaca Umbral Highlights Zone , Zona de Highlights Highres CLUT , Altas CLUT Histogram , Histograma Histogram Analysis , Análisis de Histograma Histogram Transfer , Transferencia de Histograma Hokusai: The Great Wave , Hokusai: La Gran Ola Homogeneity , Homogeneidad Hope Poster , Cartel de la esperanza Horisontal Length , Longitud horizontal Horizon Leveling (deg) , Nivelación del horizonte (deg) Horizontal Amount , Cantidad horizontal Horizontal Array , Conjunto Horizontal Horizontal Blur , Desenfoque horizontal Horizontal Length , Longitud horizontal Horizontal Size (%) , Tamaño horizontal (%) Horizontal Stripes , Rayas horizontales Horizontal Tiles , Baldosas horizontales Horizontal Warp Only , Sólo la urdimbre horizontal Hot , Caliente Hot (256) , Caliente (256) Hough Sketch , Bosquejo de Hough Hough Transform , Transformación de la dureza House , Casa Householder , Ama de casa HSI [all] , HSI [todos] HSI [Intensity] , HSI [Intensidad] HSL [all] , HSL [todo] HSL [Lightness] , HSL [Ligereza] HSL Adjustment , Ajuste del HSL HSV [all] , VHS [todo] HSV [Hue] , HSV [Tono] HSV [Saturation] , HSV [Saturación] HSV [Value] , HSV [Valor] Hue (%) , Tono (%) Hue Band , Banda de Hue Hue Factor , Factor de tonalidad Hue Offset , Compensación del tono Hue Range , Rango de tonalidades Hue Shift , Cambio de tono Hue Smoothness , Tono Suavidad Human 2 , Humano 2 Human 1 , Humano 1 Human 2 , Humano 2 Hybrid Median - Medium Speed Softest Output , Híbrido Mediano - Velocidad Media Salida Suave Hypersthene , Hipersthene Hypnosis , Hipnosis Iain Noise Reduction 2019 , Reducción de ruido Iain 2019 Identity , Identidad Ignore Current Aspect , Ignorar el aspecto actual Illuminate 2D Shape , Iluminar la forma 2D Illumination , Iluminación Illustration Look , Ilustración Mira Image , Imagen Image + Background , Imagen + Fondo Image + Colors (2 Layers) , Imagen + Colores (2 Capas) Image + Colors (Multi-Layers) , Imagen + Colores (Multi-capas) Image Contour Dimensions , Dimensiones del contorno de la imagen Image Smoothness , Suavidad de la imagen Image to Grab Color from (.Png) , Imagen para captar el color de (.Png) Image Weight , Peso de la imagen Import Data , Importar datos Import RGB-565 File , Importar el archivo RGB-565 Impulses 5x5 , Impulsos 5x5 Impulses 7x7 , Impulsos 7x7 Impulses 9x9 , Impulsos 9x9 Include Opacity Layer , Incluir la capa de opacidad IncreaseChroma1 , AumentarCroma1 Increasing , Aumentando Indoor Blue , Azul interior Influence of Color Samples (%) , Influencia de las muestras de color (%) Information , Información Init. Resolution , Init. Resolución Init. Type , Init. Escriba Init. With High Gradients Only , Init. Sólo con altos gradientes Initial Density , Densidad inicial Initialization , Inicialización Ink Wash , Lavado de tinta Inner , Interior Inner Fading , Desvanecimiento interno Inner Length , Longitud interior Inner Radius , Radio interno Inner Radius (%) , Radio interno (%) Inner Shade , Sombra interior Inpaint [Holes] , Pintura [Agujeros] Inpaint [Morphological] , Pintura [Morfológica] Inpaint [Multi-Scale] , Pintura [Multi-escala] Inpaint [Patch-Based] , Pintura [a base de parches] Inpaint [Transport-Diffusion] , Pintura [Transporte-Difusión] Input , Entrada Input Folder , Carpeta de entrada Input Frame Files Name , Nombre de los archivos del marco de entrada Input Guide Color , Guía de entrada Color Input Layers , Capas de entrada Input Transparency , Transparencia de la entrada Input Type , Tipo de entrada Insert New CLUT Layer , Insertar la nueva capa de CLUT Inside , Dentro de Inside Color , Color interior Instant [Consumer] (54) , Instantánea [Consumidor] (54) Instant [Pro] (68) , Instantánea [Pro] (68) Intensity , Intensidad Intensity of Purple Fringe , Intensidad de la franja púrpura Interlace Horizontal , Entrelazado Horizontal Interlace Vertical , Entrelazado Vertical Interpolate , Interpolar Interpolation , Interpolación Interpolation Type , Tipo de interpolación Inverse , Invertir Inverse Depth Map , Mapa de profundidad inversa Inverse Radius , Radio inverso Inverse Transform , Transformación inversa Inversions , Inversiones Invert Background / Foreground , Invertir el fondo/primer plano Invert Blur , Invertir el borrón Invert Canvas Colors , Invertir los colores del lienzo Invert Colors , Invertir los colores Invert Image Colors , Invertir los colores de la imagen Invert Luminance , Invertir la luminancia Invert Mask , Invertir la máscara Inward , Hacia adentro Isophotes , Isótopos Isotropic , Isótropo Iteration , Iteración Iterations , Iteraciones Japanese Maple Leaf , Hoja de arce japonés JPEG Artefacts , Artefactos JPEG JPEG Smooth , JPEG Suave Just Peachy , Sólo Peachy K-Factor , Factor K Kaleidoscope [Blended] , Caleidoscopio [Mezcla] Kaleidoscope [Polar] , Caleidoscopio [Polar] Kaleidoscope [Symmetry] , Caleidoscopio [Simetría] Kandinsky: Squares with Concentric Circles , Kandinsky: Cuadrados con círculos concéntricos Kandinsky: Yellow-Red-Blue , Kandinsky: Amarillo-Rojo-Azul Keep , Manténgase en Keep Aspect Ratio , Mantener la relación de aspecto Keep Base Layer as Input Background , Mantener la capa base como fondo de entrada Keep Borders Square , Mantén los límites cuadrados Keep Color Channels , Mantener los canales de color Keep Colors , Mantener los colores Keep Detail , Mantén el detalle Keep Detail Layer Separate , Mantenga la capa de detalles separada Keep Iterations as Different Layers , Mantener las iteraciones como diferentes capas Keep Layers Separate , Mantener las capas separadas Keep Original Image Size , Mantener el tamaño original de la imagen Keep Original Layer , Mantener la capa original Keep Tiles Square , Mantén los azulejos cuadrados Keep Transparency in Output , Mantener la transparencia en la salida Kernel , Núcleo Kernel Multiplier , Multiplicador del núcleo Kernel Type , Tipo de núcleo Key Factor , Factor clave Key Frame Rate , Velocidad de fotogramas clave Key Shift , Cambio de tecla Key Smoothness , Suavidad de la clave Keypoint Influence (%) , Influencia del punto clave (%) Klee: Death and Fire , Klee: Muerte y fuego Klee: In the Style of Kairouan , Klee: En el estilo de Kairouan Klee: Oriental Pleasure Garden Anagoria , Klee: Jardín de Placer Oriental Anagoria Klee: Polyphony 2 , Klee: Polifonía 2 Klee: Red Waistcoat , Klee: Chaleco rojo Klimt: The Kiss , Klimt: El beso Kodak 2393 (Cuspclip) , Kodak 2393 (Clavija) Kodak Portra 160 , Retrato de Kodak 160 Kodak Portra 160 + , Retrato de Kodak 160 + Kodak Portra 160 ++ , Retrato de Kodak 160 ++ Kodak Portra 160 - , Retrato de Kodak 160 - Kodak Portra 400 , Retrato de Kodak 400 Kodak Portra 400 - , Retrato de Kodak 400 - Kodak Portra 800 , Retrato de Kodak 800 Kodak Portra 800 - , Retrato de Kodak 800 - Kuwahara on Painting , Kuwahara sobre la pintura L1-Norm , Norma L1 L2-Norm , L2-Norma Lab , Laboratorio Lab (Chroma Only) , Laboratorio (sólo croma) Lab (Distinct) , Laboratorio (Distinto) Lab (Luma Only) , Laboratorio (Sólo Luma) Lab (Luma/Chroma) , Laboratorio (Luma/Croma) Lab (Mixed) , Laboratorio (Mixto) Lab [a-Chrominance] , Laboratorio [a-Crominancia] Lab [ab-Chrominances] , Laboratorio [ab-Crominanzas] Lab [all] , Laboratorio [todos] Lab [b-Chrominance] , Laboratorio [b-Crominancia] Lab [Lightness] , Laboratorio [Ligereza] Landscape , Paisaje Landscape-1 , Paisaje-1 Landscape-10 , Paisaje-10 Landscape-2 , Paisaje-2 Landscape-3 , Paisaje-3 Landscape-4 , Paisaje-4 Landscape-5 , Paisaje-5 Landscape-6 , Paisaje-6 Landscape-7 , Paisaje-7 Landscape-8 , Paisaje-8 Landscape-9 , Paisaje-9 Large , Gran Large Noise , Ruido grande Last , Último Last Frame , Último cuadro Late Afternoon Wanderlust , La tarde Wanderlust Late Sunset , Atardecer tardío Lava Lamp , Lámpara de lava Layer , Capa Layer Processing , Procesamiento de la capa Layers to Tiles , De las capas a los azulejos Lch [all] , Lch [todos] Lch [c-Chrominance] , Lch [c-Crominancia] Lch [ch-Chrominances] , Lch [ch-Crominanzas] Lch [h-Chrominance] , Lch [h-Crominancia] Leaf , Hoja Leaf Color , Color de la hoja Leaf Opacity (%) , Opacidad de la hoja (%) Leak Type , Tipo de fuga Left , Izquierda Left Foreground , Primer plano izquierdo Left / Right Blur (%) , Borrón izquierdo / derecho (%) Left and Right Background , Fondo izquierdo y derecho Left and Right Foreground , Primer plano a la izquierda y a la derecha Left and Right Image Streams , Corrientes de imágenes de izquierda y derecha Left Diagonal Foreground , Diagonal izquierda en primer plano Left Foreground , Primer plano izquierdo Left Position , Posición izquierda... Left Side Orientation , Orientación del lado izquierdo Left Slope , Pendiente izquierda Left Stream Only , Sólo el arroyo izquierdo Length , Longitud Lenticular Density LPI , Densidad lenticular LPI Lenticular Orientation , Orientación lenticular Lenticular Print , Impresión lenticular Level , Nivel Level Frequency , Nivel Frecuencia Levels , Niveles Life Giving Tree , Árbol de la vida Lifestyle & Commercial-1 , Estilo de vida y comercial-1 Lifestyle & Commercial-10 , Estilo de vida y comercial-10 Lifestyle & Commercial-2 , Estilo de vida y comercial-2 Lifestyle & Commercial-3 , Estilo de vida y comercial-3 Lifestyle & Commercial-4 , Estilo de vida y comercial-4 Lifestyle & Commercial-5 , Estilo de vida y comercial-5 Lifestyle & Commercial-6 , Estilo de vida y comercial-6 Lifestyle & Commercial-7 , Estilo de vida y comercial-7 Lifestyle & Commercial-8 , Estilo de vida y comercial-8 Lifestyle & Commercial-9 , Estilo de vida y comercial-9 Light , Luz Light (blown) , Luz (soplado) Light Angle , Ángulo de luz Light Color , Color de la luz Light Direction , Dirección de la luz Light Effect , Efecto de la luz Light Glow , Luz Brillante Light Grey , Gris claro Light Leaks , Fugas de luz Light Motive , Motivo de la luz Light Patch , Parche de luz Light Rays , Los rayos de luz Light Smoothness , Suavidad ligera Light Strength , Fuerza de la luz Light Type , Tipo de luz Lighten , Aligera Lighten Edges , Aligerar los bordes Lighter , Encendedor Lighting , Iluminación Lighting Angle , Ángulo de iluminación Lightness , Ligereza Lightness (%) , Ligereza (%) Lightness Factor , Factor de ligereza Lightness Level , Nivel de luminosidad Lightness Max (%) , Ligereza Máxima (%) Lightness Min (%) , Ligereza Mínimo (%) Lightness Shift , Cambio de la ligereza Lightness Smoothness , Ligereza Suavidad Lightning , Relámpago Lighty Smooth , Ligero Suave Limit Hue Range , Limitar el rango de tonalidades Line , Línea Line Opacity , Opacidad de la línea Line Precision , Precisión de la línea Linear , Lineal Linear Burn , Quemadura lineal Linear Light , Luz lineal Linear RGB , RGB lineal Linear RGB [All] , RGB lineal [Todos] Linear RGB [Blue] , RGB lineal [Azul] Linear RGB [Green] , RGB lineal [Verde] Linear RGB [Red] , RGB lineal [Rojo] Linearity , Linealidad Lineart + Color Spots , Lineal + manchas de color Lineart + Color Spots + Extrapolated Colors , Lineal + manchas de color + colores extrapolados Lineart + Colors , Lineal + Colores Lineart + Extrapolated Colors , Lineal + Colores extrapolados Lines , Líneas Lines (256) , Líneas (256) Linify , Linifica Lion , León Lissajous [Animated] , Lissajous [Animado] Lissajous Spiral , Espiral de Lissajous Little , Pequeño Little Cyan , El pequeño Cyan Little Key , Pequeña Llave Little Magenta , Pequeño Magenta Little Red , Pequeño Rojo Little Yellow , Pequeño Amarillo LN Amplititude , LN Amplititud LN Amplitude , Amplitud LN LN Average-Smoothness , LN Promedio-Suavidad LN Size , Tamaño LN Local Normalisation , Normalización local Local Contrast , Contraste local Local Contrast Effect , Efecto de contraste local Local Contrast Enhance , Mejora del contraste local Local Contrast Enhancement , Mejoramiento del contraste local Local Contrast Style , Estilo de contraste local Local Detail Enhancer , Mejorador de detalles locales Local Normalization , Normalización local Local Orientation , Orientación local Local Processing , Procesamiento local Local Similarity Mask , Máscara de similitud local Local Variance Normalization , Normalización de la variación local Lock Return Scaling to Source Layer , Bloquear la escala de retorno a la capa de la fuente Lock Source , Bloquea la fuente Lock Uniform Sampling , Bloquee el muestreo uniforme Logarithmic Distortion , Distorsión logarítmica Logarithmic Distortion Axis Combination for X-Axis , Combinación de ejes de distorsión logarítmica para el eje X Logarithmic Distortion Axis Combination for Y-Axis , Combinación de eje de distorsión logarítmica para el eje Y Logarithmic Distortion X-Axis Direction , Distorsión logarítmica Dirección del eje X Logarithmic Distortion Y-Axis Direction , Distorsión logarítmica Dirección del eje Y Lomography Redscale 100 , Lomografía Escala Roja 100 Lomography X-Pro Slide 200 , Lomografía X-Pro Diapositiva 200 Lookup , Busca Lookup Factor , Factor de búsqueda Lookup Size , Tamaño de la búsqueda Loop Method , Método de bucle Low , Bajo Low Bias , Bajo sesgo... Low Contrast Blue , Azul de bajo contraste Low Frequency , Baja frecuencia Low Frequency Layer , Capa de baja frecuencia Low Scale , Escala baja Low Value , Bajo valor... Lower Layer Is the Bottom Layer for All Blends , La capa inferior es la capa inferior para todas las mezclas Lower Mask Threshold (%) , Umbral inferior de la máscara (%) Lower Side Orientation , Orientación del lado inferior Lowercase Letters , Cartas en minúsculas Lowlights Crossover Point , Punto de cruce de luces bajas Lowres CLUT , Los bajos CLUT Lucky 64 , Afortunado 64 Luma Noise , Ruido de luma Luminance , Luminancia Luminance Factor , Factor de luminancia Luminance Level , Nivel de luminancia Luminance Only , Sólo la luminancia Luminance Only (Lab) , Sólo luminancia (laboratorio) Luminance Only (YCbCr) , Sólo luminancia (YCbCr) Luminance Shift , Cambio de luminancia Luminance Smoothness , Luminancia Suavidad Luminosity from Color , La luminosidad del color Luminosity Type , Tipo de luminosidad Lush Green Summer , El exuberante verano verde Lylejk's Painting , La pintura de Lylejk Magenta Coffee , Café Magenta Magenta Day , Día de Magenta Magenta Day 01 , Día Magenta 01 Magenta Dream , Sueño Magenta Magenta Factor , Factor Magenta Magenta Shift , Cambio de Magenta Magenta Smoothness , Suavidad del magenta Magenta Yellow , Amarillo Magenta Magenta-Yellow , Magenta-amarillo Magic Details , Detalles mágicos Magnitude / Phase , Magnitud / Fase Mail , Correo electrónico Make Hue Depends on Region Size , Hacer que el tono dependa del tamaño de la región Make Seamless [Diffusion] , Hacer que la [difusión] sin fisuras Make Seamless [Patch-Based] , Hacer que el [Patch-Based] sin fisuras Make Squiggly , Hacer Garabatos Make Up , Maquillaje Mandelbrot Explorer , Explorador de Mandelbrot Mandrill , Mandril Manual Controls , Controles manuales Map , Mapa Map Tones , Tonos de mapa Mapping , Mapeo Marble , Mármol Margin (%) , Margen (%) Mascot Image , Imagen de la mascota Masculine , Masculino Mask , Máscara Mask + Background , Máscara + Fondo Mask as Bottom Layer , La máscara como capa inferior Mask By , Máscara de Mask Color , Color de la máscara Mask Contrast , Contraste de la máscara Mask Creator , Creador de la máscara Mask Dilation , Dilatación de la máscara Mask Size , Tamaño de la máscara Mask Smoothness (%) , Suavidad de la máscara (%) Mask Type , Tipo de máscara Masked Image , Imagen Enmascarada Masking , Enmascaramiento Match Colors With , Combina los colores con Matching Precision (Smaller Is Faster) , Precisión de la coincidencia (Más pequeño es más rápido) Math Symbols , Símbolos matemáticos Matrix , Matriz Max Angle , Ángulo máximo Max Angle Deviation (deg) , Desviación del ángulo máximo (deg) Max Area , Área máxima Max Curve , Curva Max Max Cut (%) , Corte máximo (%) Max Iterations , Iteraciones máximas Max Length (%) , Longitud máxima (%) Max Offset (%) , Compensación máxima (%) Max Radius , Radio máximo Max Threshold , Umbral máximo Maximal Area , Área máxima Maximal Color Saturation , Máxima saturación de color Maximal Highlights , Máximos resultados Maximal Radius , Radio máximo Maximal Seams per Iteration (%) , Costuras máximas por iteración (%) Maximal Size , Tamaño máximo Maximal Value , Valor máximo Maximum , Máximo Maximum Dimension , Dimensión máxima Maximum Image Size , Tamaño máximo de la imagen Maximum Number of Image Colors , Número máximo de colores de la imagen Maximum Number of Output Layers , Número máximo de capas de salida Maximum Red:Blue Ratio in the Fringe , Máxima proporción rojo-azul en el margen Maximum Saturation , Saturación máxima Maximum Size Factor , Factor de tamaño máximo Maximum Value , Valor máximo Maze , Laberinto Maze Type , Tipo de laberinto Mean Color , Color medio Mean Curvature , Curvatura media Median , Mediana Median (beware: Memory-Consuming!) , Mediana (cuidado: ¡consumo de memoria!) Median Radius , Radio medio Medium , Medio Medium 3 , Medio 3 Medium Details Smoothness , Detalles medios Suavidad Medium Details Threshold , Detalles medios Umbral Medium Frequency Layer , Capa de frecuencia media Medium Scale (Original) , Escala media (original) Medium Scale (Smoothed) , Escala media (Suavizado) Memories , Recuerdos Merge Brightness / Colors , Fusionar brillo / colores Merge Layers? , ¿Fusionar capas? Merging Mode , Modo de fusión Merging Option , Opción de fusión Merging Steps , Fusión de pasos Mess with Bits , Meterse con las mordeduras Metallic Look , Mirada metálica Method , Método Metric , Métrico Metropolis , Metrópolis Micro/macro Details Adjusted , Detalles de micro/macro ajustados Mid Grey , Gris medio Mid Noise , Ruido medio Mid Tone Contrast , Contraste de los tonos medios Mid-Dark Grey , Gris oscuro medio Mid-Light Grey , Gris de media luz Middle Grey , Gris medio Middle Scale , Escala media Midpoint , Punto medio Midtones Brightness , Brillo de los tonos medios Midtones Color Intensity , Intensidad de color de los tonos medios Midtones Hue , Tono de tonos medios Mighty Details , Detalles poderosos Min Angle Deviation (deg) , Desviación del ángulo mínimo (deg) Min Area % , Área mínima Min Cut (%) , Corte mínimo (%) Min Length (%) , Longitud mínima (%) Min Offset (%) , Compensación mínima (%) Min Radius , Radio mínimo Min Threshold , Umbral mínimo Mineral Mosaic , Mosaico mineral Minesweeper , Barredor de minas Minimal Area , Área mínima Minimal Area (%) , Área mínima (%) Minimal Color Intensity , Mínima intensidad de color Minimal Highlights , Mínimos destacados Minimal Path , Camino mínimo Minimal Radius , Radio mínimo Minimal Region Area , Área de la región mínima Minimal Scale (%) , Escala mínima (%) Minimal Shape Area , Área de forma mínima Minimal Size , Tamaño mínimo Minimal Size (%) , Tamaño mínimo (%) Minimal Stroke Length , Longitud mínima de la apoplejía Minimal Value , Valor mínimo Minimalist Caffeination , La cafeína minimalista Minimum , Mínimo Minimum Brightness , Brillo mínimo Minimum Red:Blue Ratio in the Fringe , Mínima proporción rojo-azul en el margen Mirror , Espejo Mirror Effect , Efecto espejo Mirror X , Espejo X Mirror Y , Espejo Y Mix , Mezcla Mixed Mode , Modo mixto Mixer [CMYK] , Mezclador [CMYK] Mixer [HSV] , Mezclador [HSV] Mixer [Lab] , Mezclador [Laboratorio] Mixer [PCA] , Mezclador [PCA] Mixer [RGB] , Mezclador [RGB] Mixer [YCbCr] , Mezclador [YCbCr] Mixer Mode , Modo mezclador Mixer Style , Estilo mezclador Mode , Modo Modern Film , Película moderna Modulo Value , Valor del módulo Moiré Animation , Moiréa; Animación Moire Removal , Eliminación del moiré Moire Removal Method , Método de eliminación de mohos Mondrian: Composition in Red-Yellow-Blue , Mondrian: Composición en Rojo-Amarillo-Azul Mondrian: Evening; Red Tree , Noche; Árbol rojo Mondrian: Gray Tree , Mondrian: Árbol gris Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore al anochecer Monet: Water-Lily Pond , Monet: Estanque de nenúfares Monet: Wheatstacks - End of Summer , Monet: Wheatstacks - Fin del verano Monkey , Mono Mono Tinted , Mono Teñido Mono-Directional , Mono-Direccional Monochrome , Monocromo Monochrome 1 , Monocromo 1 Monochrome 2 , Monocromo 2 Montage , Montaje Montage Type , Tipo de montaje Moonlight , Luz de Luna Moonlight 01 , Luz de Luna 01 Moonrise , Salida de la Luna Morning 6 , Mañana 6... Morph [Interactive] , Morph [Interactivo] Morph Layers , Capas de morfología Morphological - Fastest Sharpest Output , Morfológico - La salida más rápida y aguda Morphological Closing , Cierre morfológico Morphological Filter , Filtro morfológico Morphology Painting , Morfología Pintura Morphology Strength , Morfología Fuerza Morroco 16 , Marruecos 16 Mosaic , Mosaico Most , La mayoría Mostly Blue , Mayormente Azul Motion Analyzer , Analizador de movimiento Motion-Compensated , Movimiento compensado Much , Mucho Much Green , Mucho verde Much Red , Mucho rojo Multi-Layer Etch , Grabado multicapa Multiple Colored Shapes Over Transp. BG , Múltiples formas de color sobre el transporte. BG Multiple Layers , Múltiples capas Multiplier , Multiplicador Multiply , Multiplicar Multiscale Operator , Operador multiescala Munch: The Scream , Munch: El grito Mute Shift , Cambio de silencio Muted 01 , Silenciado 01 Muted Fade , Desvanecimiento apagado Name , Nombre Natural (vivid) , Natural (vívido) Nature & Wildlife-1 , Naturaleza y Vida Silvestre-1 Nature & Wildlife-10 , Naturaleza y Vida Silvestre-10 Nature & Wildlife-2 , Naturaleza y Vida Silvestre-2 Nature & Wildlife-3 , Naturaleza y Vida Silvestre-3 Nature & Wildlife-4 , Naturaleza y Vida Silvestre-4 Nature & Wildlife-5 , Naturaleza y Vida Silvestre-5 Nature & Wildlife-6 , Naturaleza y Vida Silvestre-6 Nature & Wildlife-7 , Naturaleza y Vida Silvestre-7 Nature & Wildlife-8 , Naturaleza y Vida Silvestre-8 Nature & Wildlife-9 , Naturaleza y Vida Silvestre-9 Nb Circles Surrounding , Nb Círculos alrededor Near Black , Cerca de Black Nearest , El más cercano Nearest Neighbor , El vecino más cercano Neat Merge , Fusión limpia Nebulous , Nebuloso Negate , Negar Negation , Negación Negative , Negativo Negative [Color] (13) , Negativo [Color] (13) Negative [New] (39) , Negativo [Nuevo] (39) Negative [Old] (44) , Negativo [Antiguo] (44) Negative Color Abstraction , Abstracción de color negativo Negative Colors , Colores negativos Negative Effect , Efecto negativo Neighborhood Size (%) , Tamaño del vecindario (%) Neighborhood Smoothness , Suavidad del vecindario Nemesis , Némesis Neon 770 , Neón 770 Neon Lightning , Relámpago de neón Neutral Color , Color neutro Neutral Teal Orange , Naranja neutro Neutral Warm Fade , Desvanecimiento del calor neutral New Curves [Interactive] , Nuevas Curvas [Interactivo] Newspaper , Periódico Night 01 , Noche 01 Night Blade 4 , Cuchilla Nocturna 4 Night From Day , Noche desde el día Night King 141 , Rey de la Noche 141 Night Spy , Espía nocturno Nine Layers , Nueve capas No Masking , No hay máscaras No Recovery , No hay recuperación No Rescaling , No hay reescalado No Transparency , No hay transparencia Noise , Ruido Noise [Additive] , Ruido [Aditivo] Noise [Perlin] , Ruido [Perlin] Noise [Spread] , Ruido [Propagación] Noise A , Ruido A Noise B , Ruido B Noise C , Ruido C Noise D , Ruido D Noise Level , Nivel de ruido Noise Scale , Escala de ruido Noise Type , Tipo de ruido Non / No , No / No Non-Linearity , No linealidad Non-Rigid , No Rígido None , Ninguno None (Allows Multi-Layers) , Ninguno (permite multicapas) None- Skip , No... Saltar... Norm Type , Tipo de norma Normal Map , Mapa normal Normal Output , Salida normal Normalization , Normalización Normalize , Normalizar Normalize Brightness , Normalizar el brillo Normalize Colors , Normalizar los colores Normalize Illumination , Normalizar la iluminación Normalize Input , Normalizar la entrada Normalize Luma , Normalizar la Luma Normalize Scales , Normalizar las escalas Nostalgia Honey , Nostalgia Miel Nostalgic , Nostálgico Nothing , Nada Number , Número Number of Added Frames , Número de cuadros añadidos Number of Angles , Número de ángulos Number of Clusters , Número de grupos Number of Colors , Número de colores Number of Frames , Número de cuadros Number of Inter-Frames , Número de Inter-Frames Number of Iterations per Scale , Número de iteraciones por escala Number of Key-Frames , Número de fotogramas clave Number of Levels , Número de niveles Number of Matches (Coarsest) , Número de cerillas (más gruesas) Number of Matches (Finest) , Número de cerillas (mejor) Number of Orientations , Número de orientaciones Number Of Rays , Número de rayos Number of Scales , Número de escalas Number of Sizes , Número de tamaños Number of Streaks , Número de rayas Number of Teeth , Número de dientes Number of Tones , Número de tonos Object Animation , Animación de objetos Object Ratio , Relación de objetos Object Tolerance , Tolerancia a los objetos Octagon , Octágono Octaves , Octavas Octogon , Octogono Oddness (%) , Rareza (%) Off , Fuera de Offset (%) , Compensación (%) Offset Angle Rays Layer 1 , Rayos de ángulo compensado de la capa 1 Offset Angle Rays Layer 2 , Rayos de ángulo compensado de la capa 2 Old Method - Slowest , El método antiguo - el más lento Old Photograph , Fotografía antigua Old West , El viejo oeste ON1 Photography (90) , ON1 Fotografía (90) Once Upon a Time , Érase una vez One Layer , Una capa One Layer (Horizontal) , Una capa (horizontal) One Layer (Vertical) , Una capa (vertical) One Layer per Single Color , Una capa por cada color One Layer per Single Region , Una capa por cada región One Thread , Un hilo Only Leafs , Sólo las hojas Only Red , Sólo el rojo Only Red and Blue , Sólo el rojo y el azul Opacity , Opacidad Opacity (%) , Opacidad (%) Opacity as Heightmap , Opacidad como mapa de altura Opacity Contours , Contornos de Opacidad Opacity Factor , Factor de Opacidad Opacity Gain , Ganancia de opacidad Opacity Gamma , Opacidad Gamma Opacity Snowflake , Opacidad Copo de nieve Opacity Threshold (%) , Umbral de Opacidad (%) Opaque Pixels , Píxeles opacos Opaque Regions on Top Layer , Regiones opacas en la capa superior Opaque Skin , Piel opaca Open Interactive Preview , Abrir la vista previa interactiva Opening , Apertura Operation Yellow , Operación Amarillo Operator , Operador Opposing , Oponiéndose a Optimized Lateral Inhibition , Inhibición lateral optimizada Orange Dark 4 , Naranja oscuro 4 Orange Dark 7 , Naranja oscuro 7 Orange Dark Look , Naranja oscuro... Orange Tone , Tono de naranja Orange Underexposed , Naranja Subexpuesto Oranges , Naranjas Order , Pedido Order By , Ordenar por Orientation , Orientación Orientation Coherence , Orientación Coherencia Orientation Only , Sólo orientación Orientations , Orientaciones Original - (Opening + Closing)/2 , Original - (Apertura + Cierre)/2 Original - Erosion , Original - Erosión Original - Opening , Original - Apertura Orthogonal Radius , Radio ortogonal Others (69) , Otros (69) Ouline Color , Color Ouline Outer , Exterior Outer Fading , Desvanecimiento exterior Outer Length , Longitud exterior Outer Radius , Radio exterior Outline , Esquema Outline (%) , Esquema (%) Outline Color , Color del contorno Outline Contrast , Contraste del contorno Outline Opacity , Reseña de la opacidad Outline Size , Tamaño del contorno Outline Smoothness , Suavidad del contorno Outline Thickness , Espesor del contorno Outlined , Resumido Output , Salida Output As , Salida como Output as Files , Salida como archivos Output as Frames , Salida como marcos Output as Multiple Layers , Salida como múltiples capas Output as Separate Layers , Salida como capas separadas Output Ascii File , Salida del archivo Ascii Output Chroma NR , Salida Croma NR Output CLUT , Salida CLUT Output CLUT Resolution , Resolución de salida CLUT Output Coordinates File , Archivo de coordenadas de salida Output Corresponding CLUT , Salida correspondiente CLUT Output Directory , Directorio de salida Output Each Piece on a Different Layer , La salida de cada pieza en una capa diferente Output Filename , Nombre de archivo de salida Output Files , Archivos de salida Output Folder , Carpeta de salida Output Format , Formato de salida Output Frames , Marcos de salida Output Height , Altura de salida Output HTML File , Archivo HTML de salida Output Layers , Capas de salida Output Mode , Modo de salida Output Multiple Layers , Salida de múltiples capas Output Preset as a HaldCLUT Layer , La salida preestablecida como una capa de HaldCLUT Output Region Delimiters , Delimitadores de la región de salida Output Saturation , Saturación de salida Output Sharpening , Afilado de salida Output Stroke Layer On , Capa de golpe de salida activada Output to Folder , Salida a la carpeta Output Type , Tipo de salida Output Width , Ancho de salida Outside , Fuera de Outside Color , Color exterior Outside-In , Afuera-En Outward , Exterior Overall Blur , Desenfoque total Overall Contrast , Contraste general Overall Lightness , Ligereza general Overlap (%) , Superposición (%) Overlay , Superposición Oversample , Sobremuestreo Overshoot , Sobregiro Padding (px) , Acolchado (px) Paint , Pinta Paint Daub , Pinta a Daub Paint Effect , Efecto de la pintura Paint Splat , Splat de pintura Painter's Edge Protection Flow , Flujo de protección del borde del pintor Painter's Smoothness , La suavidad del pintor Painter's Touch Sharpness , La nitidez del toque del pintor Painting , Pintura Painting Opacity , Opacidad de la pintura Paladin , Paladín Paladin 1875 , Paladín 1875 Paper Texture , Textura del papel Parallel Processing , Procesamiento paralelo Parrots , Loros Passing By , Pasando Pastell Art , Arte Pastel Patch , Parche Patch Measure , Medida del parche Patch Size , Tamaño del parche Patch Size for Analysis , Tamaño del parche para el análisis Patch Size for Synthesis , Tamaño del parche para la síntesis Patch Size for Synthesis (Final) , Tamaño del parche para la síntesis (Final) Patch Smoothness , Suavidad del parche Patch Variance , Variación del parche Pattern , Patrón Pattern Angle , Ángulo del patrón Pattern Height , Patrón de altura Pattern Type , Tipo de patrón Pattern Variation 1 , Variación del patrón 1 Pattern Variation 2 , Variación del patrón 2 Pattern Variation 3 , Variación del patrón 3 Pattern Weight , Patrón de peso Pattern Width , Ancho del patrón PCA Transfer , Transferencia de PCA Pea Soup , Sopa de guisantes Pen Drawing , Dibujo a pluma Penalize Patch Repetitions , Penalizar las repeticiones de parches Pencil , Lápiz Pencil Amplitude , Amplitud del lápiz Pencil Portrait , Retrato a lápiz Pencil Size , El tamaño del lápiz Pencil Smoother Edge Protection , Protección de bordes más lisos del lápiz Pencil Smoother Sharpness , La nitidez del lápiz es más suave Pencil Smoother Smoothness , Lápiz Suavizante Suavidad Pencil Type , Tipo de lápiz Pencils , Lápices Pentagon , Pentágono Peppers , Pimientos Percent of Image Half-Hypotenuse (%) , Porcentaje de imagen media hipotenusa (%) Periodic , Periódico Periodic Dots , Puntos periódicos Periodicity , Periodicidad Perserve Luminance , Perseverar en la luminancia Perspective , Perspectiva Perturbation , Perturbación Petals , Pétalos Phase , Fase Phone , Teléfono Photoillustration , Fotoilustración Picasso: Seated Woman , Picasso: Mujer sentada Picasso: The Reservoir - Horta De Ebro , Picasso: El Embalse - Horta De Ebro Piece Complexity , Complejidad de la pieza Piece Size (px) , Tamaño de la pieza (px) Pin Light , Luz de alfiler Pixel Values , Valores de los píxeles Placement , Colocación Plaid , Tartán Plane , Avión Plasma Effect , El efecto del plasma Plot Type , Tipo de parcela Point #0 , Punto #0 Point #1 , Punto 1 Point #2 , Punto #2 Point #3 , Punto 3 Point 1 , Punto 1 Point 2 , Punto 2 Points , Puntos Polar Transform , Transformación polar Polaroid 665 -- , Polaroid 665... Polaroid 665 Negative , Polaroid 665 Negativo Polaroid 665 Negative + , Polaroid 665 Negativo + Polaroid 665 Negative - , Polaroid 665 Negativo - Polaroid 665 Negative HC , Polaroid 665 Negativo HC Polaroid 669 -- , Polaroid 669... Polaroid 669 Cold -- , Polaroid 669 Cold... Polaroid 690 -- , Polaroid 690... Polaroid 690 Cold -- , Polaroid 690 Cold... Polaroid PX-100UV+ Cold , Polaroid PX-100UV+ Frío Polaroid PX-100UV+ Cold + , Polaroid PX-100UV+ Frío + Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ Frío ++ Polaroid PX-100UV+ Cold +++ , Polaroid PX-100UV+ Frío +++ Polaroid PX-100UV+ Cold - , Polaroid PX-100UV+ Frío - Polaroid PX-100UV+ Cold -- , Polaroid PX-100UV+ Frío... Polaroid PX-100UV+ Warm ++ , Polaroid PX-100UV+ Caliente ++ Polaroid PX-680 -- , Polaroid PX-680... Polaroid PX-680 Cold ++a , Polaroid PX-680 Frío ++a Polaroid PX-680 Cold -- , Polaroid PX-680 Cold... Polaroid PX-70 -- , Polaroid PX-70... Polaroid Time Zero (Expired) , Polaroid Tiempo Cero (Expirado) Polaroid Time Zero (Expired) + , Polaroid Time Zero (Expirado) + Polaroid Time Zero (Expired) ++ , Polaroid Tiempo Cero (Expirado) ++ Polaroid Time Zero (Expired) - , Polaroid Time Zero (Expirado) - Polaroid Time Zero (Expired) -- , Polaroid Tiempo Cero (Expirado) -- Polaroid Time Zero (Expired) --- , Polaroid Tiempo Cero (Expirado) --- Polaroid Time Zero (Expired) Cold , Polaroid Tiempo Cero (Expirado) Frío Polaroid Time Zero (Expired) Cold - , Polaroid Tiempo Cero (Expirado) Frío - Polaroid Time Zero (Expired) Cold -- , Polaroid Time Zero (Expirado) Cold -- Polaroid Time Zero (Expired) Cold --- , Polaroid Tiempo Cero (Expirado) Frío --- Pole Long , Polo Largo Pole Rotation , Rotación de los polos Polka Dots , Lunares Pollock: Convergence , Pollock: Convergencia Pollock: Summertime Number 9A , Pollock: Número de verano 9A Polygonize [Delaunay] , Poligonizar [Delaunay] Polygonize [Energy] , Poligonizar [Energía] Pop Shadows , Sombras Pop Portrait , Retrato Portrait Retouching , Retoque de retratos Portrait-1 , Retrato-1 Portrait-2 , Retrato-2 Portrait-3 , Retrato-3 Portrait-4 , Retrato-4 Portrait-5 , Retrato-5 Portrait-6 , Retrato-6 Portrait-7 , Retrato-7 Portrait-8 , Retrato-8 Portrait-9 , Retrato-9 Portrait0 , Retrato. Portrait1 , Retrato1 Portrait10 , Retrato10 Portrait2 , Retrato2 Portrait3 , Retrato3 Portrait4 , Retrato4 Portrait5 , Retrato5 Portrait6 , Retrato6 Portrait7 , Retrato7 Portrait8 , Retrato8 Portrait9 , Retrato9 Position , Posición Position X (%) , Posición X (%) Position X Origin (%) , Posición X Origen (%) Position Y (%) , Posición Y (%) Position Y Origin (%) , Posición Y Origen (%) Positive , Positivo Post-Normalize , Post-Normalizar Post-Process , Post-Proceso Poster Edges , Bordes de carteles Posterization Antialiasing , Posterización Antialiasing Posterization Level , Nivel de posterización Posterize , Póster Posterized Dithering , Dithering postergado Power , Poder Pre-Defined , Pre-definido Pre-Defined Colormap , Colormap predefinido Pre-Normalize , Pre-Normalizar Pre-Normalize Image , Pre-Normalizar la imagen Pre-Process , Pre-proceso Precision , Precisión Precision (%) , Precisión (%) Preliminary Surface Shift , Desplazamiento superficial preliminar Preliminary X-Axis Scaling , Escalado preliminar del eje X Preliminary Y-Axis Scaling , Escalado preliminar del eje Y Preprocessor Power , Potencia del preprocesador Preprocessor Radius , Radio del preprocesador Preserve Canvas for Post Bump Mapping , Preservar el lienzo para el mapeo post bump Preserve Edges , Preservar los bordes Preserve Image Dimension , Preservar la dimensión de la imagen Preserve Initial Brightness , Preservar el brillo inicial Preserve Luminance , Preservar la luminancia Preview , Vista previa Preview All Outputs , Vista previa de todas las salidas Preview Bands , Previsualización de bandas Preview Brush , Previsualización de la brocha Preview Data , Vista previa de los datos Preview Detected Shapes , Vista previa de las formas detectadas Preview Frame Selection , Selección del cuadro de vista previa Preview Gradient , Vista previa del gradiente Preview Grain Alone , Previsualización del grano solo Preview Grid , Cuadrícula de vista previa Preview Guides , Guías de Previsualización Preview Mapping , Vista previa de la cartografía Preview Mask , Máscara de vista previa Preview Opacity (%) , Previsión de Opacidad (%) Preview Original , Previsualización Original Preview Precision , Previsión Precisión Preview Progress (%) , Avance de la previsión (%) Preview Progression While Running , Previsualizar la progresión mientras se ejecuta Preview Ref Point , Vista previa Punto de referencia Preview Reference Circle , Círculo de referencia de vista previa Preview Selection , Selección de la vista previa Preview Shape , Vista previa de la forma Preview Shows , Previsualización de espectáculos Preview Split , Previsualización de Split Preview Subsampling , Previsión de submuestreo Preview Time , Tiempo de Previsión Preview Tones Map , Vista previa del mapa de tonos Preview Type , Tipo de vista previa Preview Without Alpha , Previsión sin Alfa Primary Angle , Ángulo primario Primary Color , Color primario Primary Factor , Factor primario Primary Gamma , Gamma primario Primary Radius , Radio primario Primary Shift , Cambio primario Primary Twist , Giro primario Print Adjustment Marks , Imprimir las marcas de ajuste Print Films (12) , Películas impresas (12) Print Frame Numbers , Imprimir los números del marco Print Size Unit , Unidad de tamaño de impresión Print Size Width , Tamaño de la impresión Ancho Privacy Notice , Aviso de privacidad Probability Map , Mapa de probabilidad Procedural , Procedimiento Process As , Procesar como Process by Blocs of Size , Proceso por bloques de tamaño Process Channels Individually , Canales de proceso individualmente Process Top Layer Only , Procesar sólo la capa superior Process Transparency , Transparencia del proceso Processing Mode , Modo de procesamiento Propagation , Propagación Proportion , Proporción Protanomaly , Protanomalía Protect Highlights 01 , Proteger lo más destacado 01 Prussian Blue , Azul de Prusia Pseudo-Gray Dithering , Pseudo-blanqueo gris Purple , Púrpura Purple11 (12) , Púrpura11 (12) Puzzle , Rompecabezas Pyramid , Pirámide Pyramid Processing , Procesamiento de la pirámide Pythagoras Tree , El árbol de Pitágoras Quadrangle , Cuadrangular Quadratic , Cuadrática Quadtree Variations , Variaciones de los cuatro árboles Quality , Calidad Quality (%) , Calidad (%) Quantization , Cuantificación Quantize Colors , Cuantificar los colores Quasi-Gaussian , Cuasi-Gaussiano Quick , Rápido Quick Copyright , Rápido Copyright Quick Enlarge , Ampliación rápida R/B Smoothness (Principal) , R/B Suavidad (Principal) R/B Smoothness (Secondary) , R/B Suavidad (Secundaria) Radius , Radio Radius (%) , Radio (%) Radius / Angle , Radio / ángulo Radius [Manual] , Radio [Manual] Radius Cut , Corte de radio Radius Middle Circle , Radio Círculo Medio Radius Outer Circle A (>0 W%) (<0 H%) , Círculo exterior del radio A (>0 W%) (<0 H%) Rain & Snow , Lluvia y Nieve Raindrops , Gotas de lluvia Random , Al azar Random [non-Transparent] , Aleatorio [no transparente] Random Angle , Ángulo aleatorio Random Color Ellipses , Elipses de color al azar Random Colors , Colores aleatorios Random Shade Stripes , Rayas de sombra aleatorias Randomize , Aleatorizar Randomized , Aleatorio Randomness , Aleatoriedad Range , Rango Rays , Rayos Rays Colors AB , Rayos Colores AB Rays Colors ABC , Los rayos colorean el ABC Rays Colors ABCD , Los rayos colorean el ABCD Rays Colors ABCDE , Los rayos colorean ABCDE Rays Colors ABCDEF , Rayos Colores ABCDEF Rays Colors ABCDEFG , Rayos Colores ABCDEFG Rebuild From Similar Blocs , Reconstruir desde bloques similares Recompose , Recomponer Reconstruct From Previous Frames , Reconstruir a partir de marcos anteriores Recover , Recuperar Recover Highlights , Recuperar lo más destacado Recover Shadows , Recuperar las sombras Recovery , Recuperación Rectangle , Rectángulo Recursion Depth , Profundidad de recursividad Recursions , Recursiones Recursive Median , Mediana recursiva Red , Rojo Red - Green - Blue , Rojo - Verde - Azul Red - Green - Blue - Alpha , Rojo - Verde - Azul - Alfa Red Afternoon 01 , Tarde Roja 01 Red Blue Yellow , Rojo Azul Amarillo Red Chroma Factor , Factor de croma rojo Red Chroma Shift , Cambio de Croma Rojo Red Chroma Smoothness , Suavidad del croma rojo Red Chrominance , Crominancia Roja Red Day 01 , Día rojo 01 Red Dream 01 , Sueño Rojo 01 Red Factor , Factor rojo Red Level , Nivel Rojo Red Rotations , Rotaciones en rojo Red Shift , Turno rojo Red Smoothness , Suavidad roja Red Wavelength , Longitud de Onda Roja Red-Eye Attenuation , Atenuación de Ojos Rojos Red-Green , Rojo-Verde Reds , Rojos Reds Oranges Yellows , Rojos Naranjas Amarillos Reduce Halos , Reducir los halos Reduce Noise , Reducir el ruido Reduce RAM , Reducir la RAM Reduce Redness , Reducir el enrojecimiento Reference , Referencia Reference Angle (deg.) , Ángulo de referencia (deg.) Reference Color , Color de referencia Reference Colors , Colores de referencia Reflect , Refleja Reflection , Reflexión Refraction , Refracción Regular Grid , Rejilla regular Regularity , Regularidad Regularity (%) , Regularidad (%) Regularization , Regularización Regularization (%) , Regularización (%) Regularization Factor , Factor de regularización Regularization Iterations , Iteraciones de regularización Reject , Rechazar Rejected Colors , Colores rechazados Rejected Mask , Máscara rechazada Relative Block Count , Recuento relativo de bloqueos Relative Size , Tamaño relativo Relative Warping , Deformación relativa Release Notes , Notas de lanzamiento Relief , Socorro Relief Amplitude , Amplitud del alivio Relief Contrast , Contraste del alivio Relief Light , La luz de alivio Relief Size , Tamaño del relieve Relief Smoothness , Alivio Suavidad Remove Artifacts From Micro/Macro Detail , Eliminar los artefactos de los detalles del micro/macro Remove Hot Pixels , Eliminar los píxeles calientes Remove Tile , Quitar las baldosas Render Multiple Frames , Renderizar múltiples cuadros Render on Dark Areas , Renderización de las áreas oscuras Render on White Areas , Renderización de las áreas blancas Render Routine for Wiggle Animations , Rutina de Renderización para las animaciones de Wiggle Rendering , Renderización Rendering Mode , Modo de representación Repair Scanned Document , Reparar el documento escaneado Repeat , Repita Repeat [Memory Consuming!] , Repite [¡consumo de memoria!] Repeats , Repite Replace , Reemplazar Replace (Sharpest) , Reemplazar (más agudo) Replace Layer with CLUT , Reemplazar la capa con CLUT Replace Source by Target , Reemplazar la fuente por el objetivo Replace With White , Reemplazar con blanco Replaced Color , Color reemplazado Replacement Color , Color de reemplazo Reptile , Reptil Rescaling , Rescatar Reset View , Restablecer la vista Resize Image for Optimum Effect , Cambiar el tamaño de la imagen para un efecto óptimo Resolution , Resolución Resolution (%) , Resolución (%) Resolution (px) , Resolución (px) Rest 33 , El resto 33... Result Image , Imagen del resultado Result Type , Tipo de resultado Resynthetize Texture [FFT] , Resintetizar la textura [FFT] Resynthetize Texture [Patch-Based] , Resintetizar la textura [a base de parches] Retouch Layer , Capa de Retoque Retouched and Sharpened Areas , Áreas retocadas y afiladas Retouched Areas Only , Sólo las áreas retocadas Retouched Image , Imagen retocada Retouched Image Basic , Retocado de la imagen básica Retouched Image Final , Imagen Retocada Final Retouching Style , Estilo de retoque Retro Summer 3 , Retro Verano 3 Retro Yellow 01 , Retro Amarillo 01 Return Scaling , Volver a la escala Reverse Bits , Bits invertidos Reverse Bytes , Invertir los bytes Reverse Effect , Efecto inverso Reverse Endianness , Endianidad inversa Reverse Flip , Vuelta inversa Reverse Frame Stack , Revertir la pila de cuadros Reverse Gradient , Gradiente inverso Reverse Mod , Modalidad de reversa Reverse Motion , Movimiento de reversa Reverse Order , Orden inverso Reverse Pow , Polvo invertido Reversing , Invirtiendo Revert Layer Order , Revertir el orden de la capa Revert Layers , Revertir las capas RGB [All] , RGB [Todos] RGB [Blue] , RGB [Azul] RGB [Green] , RGB [Verde] RGB [red] , RGB [rojo] RGB Image + Binary Mask (2 Layers) , Imagen RGB + Máscara Binaria (2 Capas) RGB Quantization , Cuantificación RGB RGB Tone , Tono RGB RGBA [All] , RGBA [Todos] RGBA [Alpha] , RGBA [Alfa] RGBA Foreground + Background (2 Layers) , RGBA primer plano + fondo (2 capas) RGBA Image (Full-Transparency / 1 Layer) , Imagen RGBA (Transparencia total / 1 capa) RGBA Image (Updatable / 1 Layer) , Imagen RGBA (Actualizable / 1 Capa) Rice , Arroz Right , Derecho Right Diagonal Foreground , Primer plano diagonal derecho Right Diagonal Foreground , Primer plano diagonal derecho Right Eye View , Vista del ojo derecho Right Foreground , Primer plano derecho Right Position , Posición correcta Right Side Orientation , Orientación del lado derecho Right Slope , Pendiente derecha Right Stream Only , Sólo la corriente derecha Rigid , Rígido Roddy (by Mahvin) , Roddy (por Mahvin) Rodilius [Animated] , Rodilius [Animado] Rollei Retro 80s , Rollei Retro 80 Rooster , Gallo Rotate , Gire Rotate (muted) , Rotar (mudo) Rotate (vibrant) , Rotar (vibrante) Rotate 180 Deg. , Gire 180 grados. Rotate 270 Deg. , Gire 270 grados. Rotate 90 Deg. , Gire 90 grados. Rotate Hue Bands , Rotar las bandas de tonalidad Rotate Tree , Rotar el árbol Rotated , Girado Rotated (crush) , Rotación (aplastamiento) Rotations , Rotaciones Round , Ronda Roundness , Redondez Row by Row , Fila por fila RYB [All] , RYB [Todos] RYB [Blue] , RYB [Azul] RYB [Red] , RYB [Rojo] RYB [Yellow] , RYB [Amarillo] S-Curve Contrast , Contraste de la curva S Salt and Pepper , Sal y pimienta Same as Input , Igual que la entrada Same Axis , El mismo eje Sample Image , Imagen de muestra Sampling , Muestreo Sat Bottom , Satélite de fondo Sat Range , Rango de Saturación Satin , Satén Saturated Blue , Azul saturado Saturation , Saturación Saturation (%) , Saturación (%) Saturation Channel Gamma , Canal de Saturación Gamma Saturation Correction , Corrección de la saturación Saturation EQ , Saturación EQ Saturation Factor , Factor de saturación Saturation Offset , Compensación de saturación Saturation Shift , Cambio de saturación Saturation Smoothness , Saturación Suavidad Save CLUT as .Cube or .Png File , Guarda CLUT como un archivo .Cube o .Png Save Gradient As , Guardar el gradiente como Saving Private Damon , Salvar al soldado Damon Scale , Escala Scale (%) , Escala (%) Scale 1 , Escala 1 Scale 2 , Escala 2 Scale CMYK , Escala CMYK Scale Factor , Factor de escala Scale Output , Salida de la escala Scale Plasma , Plasma a escala Scale RGB , Escala RGB Scale Style to Fit Target Resolution , Estilo de escala para ajustarse a la resolución del objetivo Scale Variations , Variaciones de escala Scaled , Escala Scales , Escalas Scaling Factor , Factor de escala Scene Selector , Selector de Escena Science Fiction , Ciencia Ficción Screen , Pantalla Screen Border , Pantalla Borde Seamless Deco , Deco sin fisuras Seamless Turbulence , Turbulencia sin fisuras Second Color , Segundo color Second Offset , Segunda compensación Second Radius , Segundo radio Second Size , Segundo tamaño Secondary Color , Color secundario Secondary Factor , Factor secundario Secondary Gamma , Gamma secundario Secondary Radius , Radio secundario Secondary Shift , Turno secundario Secondary Twist , Giro secundario Sectors , Sectores Seed , Semilla Segment Max Length (px) , Longitud máxima del segmento (px) Segmentation , Segmentación Segmentation Edge Threshold , Segmentación Umbral de borde Segmentation Smoothness , Suavidad de la segmentación Segments , Segmentos Segments Strength , Segmentos Fuerza Select By , Seleccione por Select-Replace Color , Selecciona y reemplaza el color Selected Color , Color seleccionado Selected Colors , Colores seleccionados Selected Frame , Marco seleccionado Selected Mask , Máscara seleccionada Selection , Selección Selective Desaturation , Desaturación selectiva Selective Gaussian , Gaussiano selectivo Self , Auto Self Glitching , Auto-registrarse. Self Image , Imagen propia Sensitivity , Sensibilidad Sequence X4 , Secuencia X4 Sequence X6 , Secuencia X6 Sequence X8 , Secuencia X8 Serenity , Serenidad Serial Number , Número de serie Serpent , Serpiente Set Aspect Only , Sólo el aspecto del conjunto Set Frame Format , Formato del marco del set Seven Layers , Siete capas Seventies Magazine , Revista Seventies Shade , Sombra Shade Angle , Ángulo de sombra Shade Back to First Color , Sombra Volver al primer color Shade Bobs , Bobs de sombra Shade Strength , Fuerza de la sombra Shading , Sombreado Shading (%) , Sombreado (%) Shadow , Sombra Shadow Contrast , Contraste de sombras Shadow Intensity , Intensidad de la sombra Shadow King 39 , Rey de las Sombras 39 Shadow Offset X , Desplazamiento de la sombra X Shadow Offset Y , Desplazamiento de la sombra Y Shadow Patch , Parche de sombra Shadow Size , El tamaño de la sombra Shadow Smoothness , Suavidad de la sombra Shadows , Sombras Shadows Abstraction , Abstracción de las sombras Shadows Brightness , Sombras Brillo Shadows Color Intensity , Intensidad de color de las sombras Shadows Hue Shift , Sombras Cambio de Tono Shadows Lightness , Sombras Luz Shadows Selection , Selección de sombras Shadows Threshold , Sombras Umbral Shadows Zone , Zona de Sombras Shape , Forma Shape Area Max , Forma Área Máxima Shape Area Max0 , Área de la forma Max0 Shape Area Min , Forma Área Min. Shape Area Min0 , Área de la forma Min0 Shape Average , Forma Promedio Shape Average0 , Promedio de forma0 Shape Max0 , Forma Max0 Shape Median , Forma Mediana Shape Median0 , Mediana de la forma. Shape Min0 , Forma Min0 Shapes , Formas Sharpen , Afila Sharpen [Deblur] , Afila [Deblur] Sharpen [Gold-Meinel] , Afila [Gold-Meinel] Sharpen [Gradient] , Afila [Gradiente] Sharpen [Hessian] , Afila [Hessian] Sharpen [Inverse Diffusion] , Agudizar [Difusión inversa] Sharpen [Multiscale] , Agudizar [Multi-escala] Sharpen [Octave Sharpening] , Afila [Afilado de octava] Sharpen [Richardson-Lucy] , Afila [Richardson-Lucy] Sharpen [Shock Filters] , Afila [Filtros de choque] Sharpen [Texture] , Afila [Textura] Sharpen [Tones] , Afila [Tonos] Sharpen [Unsharp Mask] , Afila [Máscara de desenfoque] Sharpen [Whiten] , Afila [Blanquear] Sharpen Details in Preview , Agudizar los detalles en la vista previa Sharpen Edges Only , Sólo los bordes afilados Sharpen Object , Objeto afilado Sharpen Radius , Radio de agudeza Sharpen Shades , Agudizar las sombras Sharpened Areas Only , Sólo las áreas afiladas Sharpening , Afilado Sharpening Layer , Capa de afilado Sharpening Radius , Radio de afilado Sharpening Strength , Fuerza de afilado Sharpening Type , Tipo de afilado Sharpest , El más agudo Sharpness , Nitidez Shift Linear Interpolation? , ¿Interpolación Lineal de Cambio? Shift Point , Punto de cambio Shift X , Cambio X Shift Y , Cambio Y... Shivers , Escalofríos Shock Waves , Ondas de choque Shopping Cart , Carro de la compra Show Both Poles , Mostrar ambos polos Show Difference , Mostrar la diferencia Show Frame , Marco del espectáculo... Show Grid , Mostrar la cuadrícula Show Watershed , Mostrar Cuenca Shrink , Retracción Shuffle Pieces , Barajar las piezas Side by Side , Lado a lado Sierpinksi Design , Diseño Sierpinksi Sierpinski Triangle , Triángulo de Sierpinski Silver , Plata Similarity Space , Espacio de similitud Simple Local Contrast , Contraste local simple Simple Noise Canvas , Lienzo de Ruido Simple Simulate Film , Simular la película Sine+ , Seno+ Single (Merged) , Único (Fusionado) Single Custom Depth Map , Mapa de profundidad único y personalizado Single Image Stereogram , Estereograma de imagen única Single Layer , Una sola capa Single Opaque Shapes Over Transp. BG , Formas simples y opacas sobre el transporte. BG Six Layers , Seis capas Sixteen Threads , Dieciséis hilos Size , Tamaño Size (%) , Tamaño (%) Size for Bright Tones , Tamaño para los tonos brillantes Size for Dark Tones , Tamaño para los tonos oscuros Size of Frame Numbers (%) , Tamaño de los números de cuadro (%) Size Variance , Variación de tamaño Size-1 , Talla-1 Size-2 , Tamaño 2 Size-3 , Talla 3 Skeleton , Esqueleto Sketch , Boceto Skin Estimation , Estimación de la piel Skin Mask , Máscara de la piel Skin Tone Colors , Colores del tono de la piel Skin Tone Mask , Máscara del tono de la piel Skin Tone Protection , Protección del tono de la piel Skip All Other Steps , Saltar todos los demás pasos Skip Finest Scales , Saltar las escalas más finas Skip Others Steps , Saltar otros pasos Skip This Step , Sáltese este paso Skip to Use the Mask to Boost , Saltar a usar la máscara para impulsar Slice Luminosity , Luminosidad de la rebanada Slide [Color] (26) , Diapositiva [Color] (26) Slow (Accurate) , Lento... 40... Preciso... 41..; Slow Recovery , Recuperación lenta Small , Pequeño Small (Faster) , Pequeño (más rápido) Smart , Inteligente Smart Contrast , Contraste inteligente Smart Threshold , Umbral inteligente Smooth , Suave Smooth [Anisotropic] , Suave [Anisótropo] Smooth [Antialias] , Suave [Antialias] Smooth [Bilateral] , Suave [Bilateral] Smooth [Block PCA] , Suave [Bloquear PCA] Smooth [Diffusion] , Suave [Difusión] Smooth [Geometric-Median] , Suave [Geométrico-Mediano] Smooth [Guided] , Suave [Guiado] Smooth [IUWT] , Suave [IUWT] Smooth [Mean-Curvature] , Suave [Curvatura media] Smooth [Median] , Suave [Mediana] Smooth [NL-Means] , Suave [NL-Means] Smooth [Patch-Based] , Suave [Patch-Based] Smooth [Patch-PCA] , Suave [Patch-PCA] Smooth [Perona-Malik] , Suave [Perona-Malik] Smooth [Selective Gaussian] , Suave [Gausiano selectivo] Smooth [Skin] , Suave [Piel] Smooth [Thin Brush] , Suave [cepillo fino] Smooth [Total Variation] , Suave [Variación total] Smooth [Wavelets] , Suave [Ondas] Smooth [Wiener] , Suave [Salchicha] Smooth Abstract , Resumen de Smooth Smooth Amount , Suave Cantidad Smooth Clear , Suave claro Smooth Colors , Colores suaves Smooth Crome-Ish , Suave Crome-Ish Smooth Dark , Suave oscuro Smooth Green Orange , Suave Verde Naranja Smooth Light , Luz suave Smooth Looping , Suave giro Smooth Only , Sólo liso Smooth Sailing , Navegación suave Smooth Teal Orange , Naranja de cerceta lisa Smoothen Background Reconstruction , Suavizar la reconstrucción del fondo Smoother Edge Protection , Protección de bordes más suave Smoother Sharpness , Más suave y nítido Smoother Softness , Suavidad más suave Smoothing , Suavizar Smoothing Style , Estilo de alisado Smoothing Type , El tipo de alisado Smoothness , Suavidad Smoothness (%) , Suavidad (%) Smoothness (px) , Suavidad (px) Smoothness Shadow , Sombra de suavidad Smoothness Type , Tipo de suavidad Snowflake , Copo de nieve Snowflake 2 , Copo de nieve 2 Snowflake Recursion , Recursión del copo de nieve Soft , Suave Soft Light , Luz suave Soft Burn , Quemadura suave Soft Fade , Desvanecimiento suave Soft Glow , Brillo suave Soft Glow [Animated] , Brillo Suave [Animado] Soft Light , Luz suave Soft Random Shades , Suaves tonos aleatorios Soft Warming , Calentamiento suave Soften , Suavizar Soften All Channels , Suavizar todos los canales Soften Guide , Guía de la suavidad Solarize , Solarice Solarize Color , Solarizar el color Solarized Color2 , Color Solarizado2 Solidify , Solidificar Solve Maze , Resuelve el laberinto Some , Algunos Some Blue , Algo de azul Some Cyan , Algo de Cian Some Green , Algo de verde Some Key , Alguna llave Some Magenta , Algo de Magenta Some Red , Un poco de rojo Some Yellow , Un poco de amarillo Sort Colors , Ordenar los colores Sorting Criterion , Criterio de clasificación Source (%) , Fuente (%) Source Color #1 , Color de la fuente #1 Source Color #10 , Color de la fuente #10 Source Color #11 , Color de la fuente #11 Source Color #12 , Color de la fuente #12 Source Color #13 , Color de la fuente #13 Source Color #14 , Color de la fuente #14 Source Color #15 , Color de la fuente #15 Source Color #16 , Color de la fuente #16 Source Color #17 , Color de la fuente #17 Source Color #18 , Color de la fuente #18 Source Color #19 , Color de la fuente #19 Source Color #2 , Color de la fuente #2 Source Color #20 , Color de la fuente #20 Source Color #21 , Color de la fuente #21 Source Color #22 , Color de la fuente #22 Source Color #23 , Color de la fuente #23 Source Color #24 , Color de la fuente #24 Source Color #3 , Color de la fuente #3 Source Color #4 , Color de la fuente #4 Source Color #5 , Color de la fuente #5 Source Color #6 , Color de la fuente #6 Source Color #7 , Color de la fuente #7 Source Color #8 , Color de la fuente #8 Source Color #9 , Color de la fuente #9 Source X-Tiles , Fuente X-Tiles Source Y-Tiles , Fuente Y-Tiles Space , Espacio Spacing , Espaciamiento Spatial Bandwidth , Ancho de banda espacial Spatial Metric , Métrica espacial Spatial Overlap , Superposición espacial Spatial Precision , Precisión espacial Spatial Radius , Radio espacial Spatial Regularization , Regularización espacial Spatial Sampling , Muestreo espacial Spatial Scale , Escala espacial Spatial Tolerance , Tolerancia espacial Spatial Transition , Transición espacial Spatial Variance , Variación espacial Special Effects , Efectos especiales Specific Saturation , Saturación específica Specify Different Output Size , Especificar un tamaño de salida diferente Specify HaldCLUT As , Especifique HaldCLUT como Specular , Especular Specular (%) , Especular (%) Specular Centering , Centrado especular Specular Intensity , Intensidad especular Specular Light , La Luz Especular Specular Lightness , Ligereza especular Specular Shininess , Brillo Especular Specular Size , El tamaño molecular... Speed , Velocidad Sphere , Esfera Spiral , Espiral Spiral RGB , Espiral RGB Spline Editor , Editor de Spline Spline Max Angle (deg) , Ángulo máximo del spline (deg) Spline Max Length (px) , Longitud máxima del spline (px) Spline Roundness , Redondez de la estría Splines , Estrías Split Base and Detail Output , Base dividida y salida de detalles Split Brightness / Colors , Brillo y colores divididos Split Details [Alpha] , Detalles de la división [Alfa] Split Details [Gaussian] , Detalles de la división [gaussiana] Split Details [Wavelets] , Detalles de la división [Ondas] Sponge , Esponja Spread , Difundir Spread Amount , Cantidad esparcida Spread Angles , Ángulos de propagación Spread Noise Amount , Ruido de propagación Cantidad Spreading , Difusión Spring Morning , Mañana de primavera Sprocket 231 , Piñón 231 Spy 29 , Espía 29 Square , Cuadrado Square (Inv.) , Cuadrado (Inv.) Square 1 , Cuadrado 1 Square 2 , Cuadrado 2 Square to Circle , Cuadrado a Círculo Squared-Euclidean , Cuadrado-Euclidiano Squares , Cuadrados Squares (Outline) , Cuadrados (Esquema) SRGB Conversion , Conversión SRGB Stabilizer , Estabilizador Stained Glass , Vidrios de colores Stamp , Sello Standard , Estándar Standard (256) , Estándar (256) Standard [No Scan] , Estándar [Sin Escaneo] Standard Deviation , Desviación estándar Star , Estrella Star: -5*(z^3/3-Z/4)/2 , Estrella: -5*(z^3/3-Z/4)/2 Stardust , Polvo de estrellas Stars , Estrellas Stars (Outline) , Estrellas (Esquema) Start Angle , Ángulo de inicio Start Color , Color de inicio Start Frame Number , Número de cuadro inicial Start of Mid-Tones , Inicio de los tonos medios Starting Angle , Ángulo de partida Starting Color , Color de inicio Starting Feathering , Empezando a emplumar Starting Frame , Marco inicial Starting Level , Nivel de inicio Starting Pattern , Patrón de partida Starting Point , Punto de partida Starting Point (%) , Punto de partida (%) Starting Scale (%) , Escala inicial (%) Starting Value , Valor inicial Stationary Frames , Marcos estacionarios Std Angle (deg.) , Ángulo estándar (deg.) Std Branching , Rama Std Std Length Factor (%) , Factor de longitud estándar (%) Std Thickness Factor (%) , Factor de Espesor Std (%) Stencil Type , Tipo de plantilla Step , Paso Step (%) , Paso (%) Steps , Pasos Stereo Image , Imagen Estéreo Stereo Window Position , Posición de la ventana del estéreo Stereographic Projection , Proyección estereográfica Stereoscopic Image Alignment , Alineación de imágenes estereoscópicas Stereoscopic Window Position , Posición de la ventana estereoscópica Straight , Recto Street , Calle Strength , Fuerza Strength (%) , Fuerza (%) Strength Effect , Efecto de fuerza Strength Highlights , Lo más destacado de la fuerza Strength Midtones , Fuerza Midtones Strength Shadows , Fuerza Sombras Stretch , Estira Stretch Colors , Estirar los colores Stretch Contrast , Estirar el contraste Stretch Factor , Factor de estiramiento Strip , Desnúdate Stripe Orientation , Orientación de las rayas Stroke , Golpe Stroke Angle , Ángulo de la embolia Stroke Length , Longitud de la carrera Stroke Strength , Fuerza del golpe Strong , Fuerte Structure Smoothness , Suavidad de la estructura Studio , Estudio Style , Estilo Style Variations , Variaciones de estilo Stylize , Estilizar Subdivisions , Subdivisiones Subpixel Interpolation , Interpolación de subpíxeles Subpixel Level , Nivel de subpíxel Subsampling (%) , Submuestreo (%) Subtle Blue , Azul sutil Subtle Green , Verde sutil Subtle Yellow , Amarillo sutil Subtract , Reste Subtractive , Sustracción Summer , Verano Summer (alt) , Verano (alt) Sunny (alt) , Soleado (alt) Sunny (rich) , Sunny (rico) Sunny (warm) , Soleado (caliente) Super Warm , Súper Caliente Super Warm (rich) , Súper Caliente (rico) Super-Pixels , Super-Píxeles Superformula , Superfórmula Superimpose with Original? , ¿Superponer con Original? Surface Disturbance , Perturbación de la superficie Surface Disturbance Multiplier , Multiplicador de perturbaciones de la superficie Swan , Cisne Swap , Intercambio Swap Colors , Intercambio de colores Swap Layers , Intercambiar capas Swap Radius / Angle , Intercambio de radio/ángulo Swap Sides , Intercambie los lados Sweet Bubblegum , Bomba de Chicle Dulce Sweet Gelatto , Dulce Gelatto Symmetric 2D Shape , Forma 2D simétrica Symmetrize , Simetrizar Symmetry , Simetría Symmetry Sides , Lados de simetría Synthesis Scale , Escala de síntesis Tangent Radius , El radio de la tangente Target Color #1 , Color del objetivo #1 Target Color #10 , Color del objetivo #10 Target Color #11 , Color del objetivo #11 Target Color #12 , Color del objetivo #12 Target Color #13 , Color del objetivo #13 Target Color #14 , Color del objetivo #14 Target Color #15 , Color del objetivo #15 Target Color #16 , Color del objetivo #16 Target Color #17 , Color del objetivo #17 Target Color #18 , Color del objetivo #18 Target Color #19 , Color del objetivo #19 Target Color #2 , Color del objetivo #2 Target Color #20 , Color del objetivo #20 Target Color #21 , Color del objetivo #21 Target Color #22 , Color del objetivo #22 Target Color #23 , Color del objetivo #23 Target Color #24 , Color del objetivo #24 Target Color #3 , Color del objetivo #3 Target Color #4 , Color del objetivo #4 Target Color #5 , Color del objetivo #5 Target Color #6 , Color del objetivo #6 Target Color #7 , Color del blanco #7 Target Color #8 , Color del objetivo #8 Target Color #9 , Color del objetivo #9 Teal Moonlight , Luz de Luna Teal TechnicalFX - Backlight Filter , TechnicalFX - Filtro de luz de fondo Temperature Balance , El equilibrio de la temperatura Ten Layers , Diez capas Tends to Be Square , Tiende a ser cuadrado Tension Green 1 , Tensión Verde 1 Tension Green 2 , Tensión Verde 2 Tension Green 3 , Tensión Verde 3 Tension Green 4 , Tensión Verde 4 Tensor Smoothness , Suavidad del tensor Tertiary Factor , Factor Terciario Tertiary Gamma , Terciario Gamma Tertiary Shift , Cambio Terciario Tertiary Twist , Giro terciario Text , Texto Texture , Textura Texture Enhance , Mejora de la textura Textured Glass , Vidrio texturizado The Game of Life , El juego de la vida The Matrices , Las matrices Thickness , Espesor Thickness (%) , Espesor (%) Thickness (px) , Espesor (px) Thickness Factor , Factor de espesor Thin Edges , Bordes delgados Thin Separators , Separadores delgados Thinness , Delgadez Thinning , Adelgazamiento Thinning (Slow) , Adelgazamiento (Lento) Three Layers , Tres capas Threshold , Umbral Threshold (%) , Umbral (%) Threshold Etch , Grabado de umbral Threshold High , Umbral alto Threshold Low , Umbral bajo Threshold Max , Umbral máximo Threshold Mid , Umbral medio Threshold On , Umbral de Thumbnail Size , El tamaño de la miniatura Tiger , Tigre Tile Poles , Polos de azulejos Tile Size , Tamaño de las baldosas Tileable Rotation , Rotación de la baldosa Tiled Isolation , Aislamiento de azulejos Tiled Normalization , Normalización de los azulejos Tiled Parameterization , Parametrización de los azulejos Tiled Preview , Vista previa en mosaico Tiled Random Shifts , Cambios aleatorios en mosaico Tiled Rotation , Rotación de los azulejos Tiles , Baldosas Tiles to Layers , Azulejos a las capas Time , Tiempo Time Step , Paso de tiempo Timed Image , Imagen cronometrada Tiny , Pequeño To Equirectangular , a la equidistancia To Nadir / Zenith , A Nadir / Zenith Toasted Garden , Jardín tostado Toes , Dedos de los pies Toggle to View Base Image , Cambiar a ver la imagen de la base Tolerance , Tolerancia Tolerance to Gaps , Tolerancia a las diferencias Tonal Bandwidth , Ancho de banda tonal Tone Blur , Borrón de Tono Tone Enhance , Mejora del tono Tone Gamma , Tono Gamma Tone Mapping , Mapeo de Tonos Tone Mapping (%) , Mapeo de tonos (%) Tone Mapping [Fast] , Mapeo de Tonos [Rápido] Tone Mapping Fast , Mapeo de tonos rápido Tone Mapping Soft , Mapeo de Tono Suave Tone Presets , Preselecciones de tono Tone Threshold , Umbral de tono Tones Range , Rango de tonos Tones Smoothness , Tonos Suavidad Tones to Layers , Tonos a las capas Top Layer , Capa superior Top Left , Arriba a la izquierda Top Right , Arriba a la derecha Top-Left Vertex (%) , Vértice superior izquierdo (%) Top-Right Vertex (%) , Vértice superior derecho (%) Total Layers , Capas totales Total Variation , Variación total Transfer Colors [Histogram] , Transferencia de colores [Histograma] Transfer Colors [Patch-Based] , Transferir colores [Patch-Based] Transfer Colors [PCA] , Transferencia de colores [PCA] Transfer Colors [Variational] , Transferencia de colores [Variación] Transform , Transformar Transition Map , Mapa de transición Transition Shape , Forma de transición Transition Smoothness , Suavidad de la transición Transmittance Map , Mapa de transmisión Transparency , Transparencia Transparent , Transparente Transparent Background , Fondo transparente Transparent Black & White , Blanco y negro transparente Transparent Color , Color transparente Transparent on Black , Transparente sobre Negro Transparent on White , Transparente sobre el blanco Transparent Skin , Piel transparente Tree , Árbol Triangle , Triángulo Triangles , Triángulos Triangles (Outline) , Triángulos (Esquema) Triangular Va , Va triangular Tritanomaly , Tritanomalía True Colors 8 , Colores verdaderos 8 Trunk Color , Color del tronco Trunk Opacity (%) , Opacidad del tronco (%) Trunks , Troncos Tulips , Tulipanes Tunnel , Túnel Turbulence , Turbulencia Turbulence 2 , Turbulencia 2 Turbulent Halftone , Medio tono turbulento Turkiest 42 , El 42 más turco Turn on Rotate and Twirl , Enciende la rotación y el giro... Twirl , Giro Twisted Rays , Rayos torcidos Two Layers , Dos capas Two Threads , Dos hilos Type , Escriba Type Snowflake , Tipo Copo de Nieve Ultra Water , Ultra Agua Unaligned Images , Imágenes no alineadas Undeniable , Innegable Undeniable 2 , Innegable 2 Underwater , Bajo el agua Undo Anaglyph , Deshacer el anaglifo Uniform , Uniforme Unknown , Desconocido Unquantize [JPEG Smooth] , Unquantize [JPEG Suave] Unsharp Mask , Máscara de la Unsharp Unstrip , Desenvuelva Up-Left , Arriba a la izquierda Up-Right , Arriba-Derecha Upper Layer Is the Top Layer for All Blends , La capa superior es la capa superior para todas las mezclas Upper Side Orientation , Orientación del lado superior Uppercase Letters , Cartas en mayúsculas Upscale [Diffusion] , Difusión a gran escala Use as Hue , Usar como Tono Use as Saturation , Uso como saturación Use Individual Depth Map , Usar el mapa de profundidad individual Use Light , Usar la luz Use Maximum Tones , Usar los tonos máximos Use Top Layer as a Priority Mask , Usar la capa superior como una máscara de prioridad User-Defined , Definido por el usuario User-Defined (Bottom Layer) , Definido por el usuario (capa inferior) Uzbek Bukhara , Bukhara de Uzbekistán Uzbek Marriage , Matrimonio uzbeko Uzbek Samarcande , Samarcande de Uzbekistán V Cutoff , Corte V Val Range , Rango de Val Value , Valor Value Action , Valor Acción Value Blending , Mezcla de valores Value Bottom , Valor inferior Value Correction , Corrección del valor Value Factor , Factor de valor Value Normalization , Normalización de valores Value Offset , Compensación del valor Value Precision , Precisión del valor Value Range , Rango de valores Value Scale , Escala de valores Value Shift , Cambio de valor Value Smoothness , Valorar la suavidad Value Top , Valor máximo Value Variance , Variación del valor Values , Valores Van Gogh: Almond Blossom , Van Gogh: Flor de almendro Van Gogh: Irises , Van Gogh: Lirios Van Gogh: The Starry Night , Van Gogh: La noche estrellada Van Gogh: Wheat Field with Crows , Van Gogh: Campo de trigo con cuervos Variability , Variabilidad Variance , Variación Variation A , Variación A Variation B , Variación B Variation C , Variación C Vector Painting , Pintura vectorial Velocity , Velocidad Vertex Type , Tipo de vértice Vertical 1 Amount , Vertical 1 Cantidad Vertical 1 Length , Vertical 1 Longitud Vertical 2 Amount , Vertical 2 Cantidad Vertical 2 Length , Vertical 2 Longitud Vertical Amount , Cantidad vertical Vertical Array , Conjunto vertical Vertical Blur , Borrón vertical Vertical Length , Longitud vertical Vertical Size (%) , Tamaño vertical (%) Vertical Stripes , Rayas verticales Vertical Tiles , Baldosas verticales Very Course 5 , Muy Curso 5 Very Fine , Muy bien. Very High , Muy alto Very High (Even Slower) , Muy alto (aún más lento) Very Warm Greenish , Muy caliente verdoso Vibrant , Vibrante Vibrant (alien) , Vibrante (alienígena) Vibrant (contrast) , Vibrante (contraste) Vibrant (crome-Ish) , Vibrante (crome-Ish) Victory , Victoria View Outlines Only , Ver sólo los esquemas View Resolution , Ver Resolución Vignette Contrast , Contraste de la viñeta Vignette Size , Tamaño de la viñeta Vignette Strength , Fuerza de la viñeta Vintage (brighter) , Vintage (más brillante) Vintage Chrome , Cromo antiguo Vintage Style , Estilo Vintage Vintage Tone (%) , Tono antiguo (%) Virtual Landscape , Paisaje virtual Visible Watermark , Marca de agua visible Vivid Edges , Bordes vivos Vivid Light , Luz Viva Vivid Screen , Pantalla Vívida Voronoï , Vorono... 239; Wall , Muro Warm , Caliente Warm (highlight) , Caliente (destacar) Warm (yellow) , Caliente (amarillo) Warm Dark Contrasty , Contraste cálido y oscuro Warm Neutral , Caliente Neutral Warm Sunset Red , Rojo cálido del atardecer Warm Teal , Cerceta caliente Warm Vintage , Vintage cálido Warp [Interactive] , Warp [Interactivo] Warp by Intensity , La urdimbre por la intensidad Water , Agua Waterfall , Cascada Wave(s) , Onda(s) Wavelength , Longitud de onda Waves Amplitude , La amplitud de las ondas Waves Smoothness , Suavidad de las olas We'll See , Ya veremos. Weave , Tejido Weird , Raro Whirl Drawing , Dibujo de torbellino Whirls , Remolinos White , Blanco White Dices , Dados blancos White Layers , Capas blancas White Level , Nivel de blanco White on Black , Blanco sobre Negro White on Transparent , Blanco sobre Transparente White on Transparent Black , Blanco sobre negro transparente White Point , Punto Blanco White to Black , De blanco a negro White Walls , Paredes blancas Whitening , Blanqueamiento Whiter Whites , Blancos más blancos Whites , Blancos Width , Ancho Width (%) , Anchura (%) Wind , Viento Winter Lighthouse , Faro de invierno Wipe , Limpia Without , Sin Wooden Gold 20 , Oro de madera 20 Work on Frameset , Trabajo en Frameset Wrap , Envoltura X Center , Centro X X Origine , X Origen X-Angle , Ángulo X X-Axis Then Y-Axis , Eje X y luego eje Y X-Border , Frontera X X-Centering (%) , Centrado X (%) X-Coordinate [Manual] , X-Coordenada [Manual] X-Curvature , Curvatura X X-Dispersion , Dispersión X X-Factor , Factor X X-Factor (%) , Factor X (%) X-Multiplier , X-Multiplicador X-Ratio , Relación X X-Resolution , Resolución X X-Rotation , X-Rotación X-Size (px) , Tamaño X (px) X-Variations , X-Variaciones X/Y-Ratio , Relación X/Y X1 (none) , X1 (ninguno) XY Mirror , Espejo XY XY-Axes , Ejes XY XY-Axis , Eje XY XY-Coordinates (%) , Coordenadas XY (%) XY-Factor , Factor XY Y Center , Centro Y Y-Axis , Eje Y Y-Axis Then X-Axis , Eje Y y luego eje X Y-Border , Frontera Y Y-Centering (%) , Centrado en Y (%) Y-Coordinate , Y-Coordinación Y-Coordinate [Manual] , Coordenadas Y [Manual] Y-Curvature , Curvatura Y Y-Dispersion , Dispersión en Y Y-Factor , Factor Y Y-Factor (%) , Factor Y (%) Y-Multiplier , Y-Multiplicador Y-Ratio , Relación Y Y-Resolution , Resolución Y Y-Rotation , Rotación Y Y-Scale , Escala Y Y-Shift (%) , Desplazamiento Y (%) Y-Shift (px) , Desplazamiento Y (px) Y-Size , Tamaño Y Y-Size (px) , Tamaño Y (px) Y-Variations , Variaciones Y YAG Effect , Efecto YAG YCbCr (Chroma Only) , YCbCr (Sólo Chroma) YCbCr (Distinct) , YCbCr (Distinto) YCbCr (Luma Only) , YCbCr (Sólo Luma) YCbCr (Mixed) , YCbCr (Mixto) YCbCr [Blue Chrominance] , YCbCr [Crominancia Azul] YCbCr [Blue-Red Chrominances] , YCbCr [Crominanzas Rojo-Azul] YCbCr [Green Chrominance] , YCbCr [Crominancia Verde] YCbCr [Luminance] , YCbCr [Luminancia] YCbCr [Red Chrominance] , YCbCr [Crominancia Roja] Yellow , Amarillo Yellow 55B , Amarillo 55B Yellow Factor , Factor amarillo Yellow Film 01 , Película amarilla 01 Yellow Shift , Turno amarillo Yellow Smoothness , Suavidad amarilla YES8 , SÍ8 YIQ [chromas] , YIQ [cromas] You Can Do It , Puedes hacerlo Z-Angle , Ángulo Z Z-Multiplier , Z-Multiplicador Z-Rotation , Z-Rotación Z-Scale , Escala Z Z-Size , Tamaño Z Zero , Cero ZilverFX - B&W Solarization , ZilverFX - Solarización en blanco y negro ZilverFX - InfraRed , ZilverFX - Infrarrojo Zone System , Sistema de zonas Zoom Factor , Factor de Zoom Zoom In , Acercamiento Zoom Out , Aleja el zoom ================================================ FILE: translations/filters/gmic_qt_fr.csv ================================================ Light , Légère , Comicbook None , Aucune , Comicbook For edges: , Pour les bords : Line Strength , Dose de lignes , Comicbook For colors: , Pour les couleurs : Colors to Black or White , Transformer en noir et blanc , Comicbook Faves , Favoris About , A propos Arrays & Tiles , Tableaux & tuiles Artistic , Artistique Black & White , Noir & blanc Colors , Couleurs Deformations , Déformations Degradations , Dégradations Details , Détails Frames , Cadres Frequencies , Fréquences Layers , Calques Lights & Shadows , Ombres & lumières Patterns , Motifs Rendering , Rendu Repair , Réparation Sequences , Séquences Stereoscopic 3D , Stéréoscopie 3D Testing , En test Various , Divers Preview Type , Type de prévisualisation Backward Horizontal , Séparation horizontale arrière Forward Vertical , Séparation verticale avant Backward Vertical , Séparation verticale arrière Full , Entier Forward Horizontal , Séparation horizontale avant Duplicate Right , Copie à droite Duplicate Left , Copie à gauche Duplicate Bottom , Copie en bas Duplicate Top , Copie en haut Duplicate Vertical , Copie verticale Duplicate Horizontal , Copie horizontale Checkered Inverse , En damier inversé Checkered , En damier Preview Split , Découpage de la prévisualisation Smoothness , Régularité None , Aucun Lab [ab-Chrominances] , Lab [Chrominances-ab] Lab [b-Chrominance] , Lab [Chrominance-b] Lab [a-Chrominance] , Lab [Chrominance-a] Lch [h-Chrominance] , Lch [Chrominance-h] Lch [c-Chrominance] , Lch [Chrominance-c] Lch [ch-Chrominances] , Lch [Chrominance-ch] All , Tous Channel(s) , Canaux YCbCr [Blue-Red Chrominances] , YCbCr [Chrominances bleu-rouge] YCbCr [Blue Chrominance] , YCbCr [Chrominance bleue] Linear RGB [All] , RVB Linéaire [Tous] Linear RGB [Blue] , RVB Linéaire [Bleu] Linear RGB [Green] , RVB Linéaire [Vert] Linear RGB [Red] , RVB Linéaire [Rouge] RGB [All] , RVB [Tous] RGB [Blue] , RVB [Bleu] RGB [Red] , RVB [Rouge] RGB [Green] , RVB [Vert] CMYK [Magenta] , CMJN [Magenta] CMYK [Key] , CMJN [Noir] CMYK [Cyan] , CMJN [Cyan] HSL [Lightness] , HSL [Luminosité] CMYK [Yellow] , CMJN [Jaune] Lab [Lightness] , Lab [Luminosité] HSI [Intensity] , HSI [Intensité] HSV [Value] , HSV [Valeur] YCbCr [Green Chrominance] , YCbCr [Chrominance verte] YCbCr [Red Chrominance] , YCbCr [Chrominance rouge] HSV [Hue] , HSV [Teinte] RGBA [All] , RGBA [Tous] RYB [Yellow] , RJB [Jaune] RYB [Blue] , RJB [Bleu] RYB [All] , RJB [Tous] RYB [Red] , RJB [Rouge] Color , Couleur Radius , Rayon Iterations , Itérations Preset , Préréglage Normalize , Normalise Cut , Coupe Opacity , Opacité Mirror , Mirroir All [Collage] , Tous [Collage] Density , Densité Size , Taille Threshold , Seuil Antialiasing , Anticrénelage Nearest , Plus proche voisin Periodic , Périodique Boundary , Bord RGB , RVB Lock Source , Vérouille la source Replace Source by Target , Replace la source par la cible Value Action , Action sur la valeur Scale , Échelle Sharpness , Netteté Parallel Processing , Calcul parallèle Center (%) , Centre (%) Size (%) , Taille (%) Linear , Linéaire Lightness , Luminosité Random , Hasard Hue , Teinte Value , Valeur Gaussian , Gaussien Thickness , Épaisseur X-Angle , Angle-X Contrast (%) , Contraste (%) Y-Angle , Angle-Y Darken , Plus sombre CMYK [magenta] , CMJN [magenta] CMYK [key] , CMJN [noir] CMYK [yellow] , CMJN [jaune] HSV [value] , HSV [valeur] HSI [intensity] , HSI [intensité] HSV [hue] , HSV [teinte] HSL [lightness] , HSL [luminosité] Brightness (%) , Luminosité CMYK [cyan] , CMJN [cyan] YCbCr [green Chrominance] , YCbCr [Chrominance verte] YCbCr [red Chrominance] , YCbCr [Chrominance rouge] Resolution , Résolution Lab [lightness] , Lab [Luminosité] Multiply , Multiplication Linear RGB [red] , RVB Linéaire [rouge] Linear RGB [green] , RVB Linéaire [verte] Contrast , Contraste YCbCr [blue-Red Chrominances] , YCbCr [Chrominance bleu-rouge] Z-Angle , Angle-Z RGBA [all] , RGBA [tous] Height , Hauteur YCbCr [blue Chrominance] , YCbCr [Chrominance bleue] RGB [all] , RVB [tous] RGB [green] , RVB [vert] RGB [blue] , RVB [bleu] Overlay , Superposition Average , Moyenne RGB [red] , RVB [rouge] Linear RGB [blue] , RVB linéaire [bleu] Linear RGB [all] , RVB Linéaire [tous] Colorspace , Espace de couleur Edges , Bords Width , Largeur Amount , Quantité Four Threads , Quatre fils Flat , Plat Sixteen Threads , Seize threads Eight Threads , Huit threads Two Threads , Deux threads One Thread , Un thread Spatial Overlap , Superposition spatiale Specular Lightness , Luminosité spéculaire Z-Light , Lumière-Z Specular Shininess , Brillance spéculaire Negative , Négatif Grain Merge , Fusion de grain Linear RGB , RVB linéaire Y-Light , Lumière-Y X-Light , Lumière-X Red , Rouge Y-Tiles , Tuiles-Y Output Folder , Répertoire de destination X-Tiles , Tuiles-X Blue , Bleu Frames , Cadres Hard Light , Lumière dure Add , Addition Lighten , Plus clair Edge Threshold , Seuil de contours Reflect , Réflexion Green , Vert Strength , Force Soft Light , Lumière douce Difference , Différence Negation , Négation Negative Colors , Couleurs négatives Opacity (%) , Opacité (%) Tangent , Tangente Anisotropy , Anisotropie Anti-Aliasing , Anti-crénelage Burn , Brûler Rendering , Rendu Sinusoidal , Sinusoïdale Dodge , Esquisse Value Offset , Décalage de valeur Off , Éteint Screen , Écran Stamp , Tampon Hue (%) , Teinte (%) Shape , Forme Number of Scales , Nombre d'échelles Arc-Tangent , Arc-tangente X-Axis , Axe-X Hue Offset , Décalage de teinte Target Value (%) , Valeur cible (%) Target Saturation (%) , Saturation cible (%) Target Hue (%) , Teinte cible (%) Wireframe , Fil de fer Offset , Décalage Nearest Neighbor , Plus proche voisin Lock , Vérouiller Top Layer , Calque supérieur Bottom Layer , Calque inférieur Precision , Précision Smooth , Régulier Flat-Shaded , Éclairage plat Freeze , Geler Dots , Points Remap , Reprojette Saturation Offset , Décalage de saturation Cosinusoidal , Cosinusoïdal Depth , Profondeur Y-Axis , Axe-Y Positive , Positif Strength (%) , Force (%) Outline Color , Couleur de liseret Custom Formula , Formule personnalisée Shadows , Ombres Black , Noir Custom , Personnalisé Density (%) , Densité (%) Bilateral , Bilatéral Black & White , Noir & Blanc Random Seed , Graine aléatoire Highlights , Tons clairs Patch Size , Taille de patch Regularization , Régularisation Rotate , Tourne Output , Sortie Tones Smoothness , Régularité des tons Invert , Inversion Factor , Facteur Smoothness (%) , Régularité (%) And , Et Output Mode , Mode de sortie Equalize , Égalise Channels , Canaux Salt and Pepper , Poivre et sel Divide , Division Dilation , Dilatation X-Offset , Décalage-X Y-Offset , Décalage-Y Y-Size , Taille-Y Subtract , Soustraction Number of Colors , Nombre de couleurs Tones Range , Intervalle de tons Seed , Graine Time Step , Pas de temps Details Scale , Échelle de détails Coherence , Cohérence Black on White , Noir sur blanc Grain Extract , Extraction de grain Gradient Smoothness , Régularité du gradient Bicubic , Bicubique Softlight , Lumière douce Tolerance , Tolérance XY-Axes , Axes-XY White on Black , Blanc sur noir X-Size , Taille-X All Tones , Tous les tons Output as Files , Sauve sous forme de fichiers Output as Frames , Sauve sous forme de trames Uniform , Uniforme Transparency , Transparence Square , Carré Preserve , Préserve Mid-Tones , Tons médians White , Blanc Colors , Couleurs Fine , Fin Blend Mode , Mode de fusion Normalize Colors , Normalise les couleurs Post-Normalize , Post-normalise Landscape , Paysage Y-Shadow , Ombre-Y Frequency , Fréquence Edge , Bord Base Scale , Échelle de base Min Threshold , Seuil min Mask Color , Couleur de masque Equalize Light , Égalise la lumière Repeat , Répète Values , Valeurs Max Threshold , Seuil max Merging Option , Option de fusion Preview Progression While Running , Prévisualise la progression pendant le calcul Fast Approximation , Approximation rapide Outline , Liseret Smoothness Type , Type de régularisation Color Mode , Mode de couleur Grainmerge , Fusion de grain Blur , Lissage Shading , Ombrage Center , Centre X-Shadow , Ombre-X X-Offset (%) , Décalage-X (%) CMYK , CMNJ Darker , Plus sombre Scales , Échelles Tensor Smoothness , Régularité des tenseurs Diamond , Diamant Y-Offset (%) , Décalage-Y (%) Darkness , Obscurité Levels , Niveaux Output Frames , Génère des trames Color Strength , Force de la couleur Hardlight , Lumière dure Some Magenta , Un peu de magenta Some Key , Un peu de noir Ending Value , Valeur de fin Starting Feathering , Adoucissement de départ Automatic , Automatique Skip All Other Steps , Ignore toutes les autres étapes Output Files , Sauve fichiers Attenuation , Atténuation Softburn , Brûlure douce Color Boost , Renforcement des couleurs Length , Longueur Softdodge , Esquive douce Filename , Nom de fichier Circular , Circulaire Sphere , Sphère Some Yellow , Un peu de jaune Area , Aire Some Cyan , Un peu de cyan Hue Shift , Décalage de teinte Frame Size , Taille du cadre Color Model , Modèle de couleurs Torus , Tore Brightness , Luminosité Grayscale , Niveaux de gris Curvature , Courbure Background Color , Couleur de fond Grainextract , Exttraction de grain Disable , Désactiver Number of Tones , Nombre de tons Scale (%) , Échelle (%) Blank , Vierge Pre-Normalize , Pré-normalise Both , Les deux Outline (%) , Liseret (%) Output As , Sauve comme Edge Thickness , Épaisseur du bord Preview Shows , La prévisualisation montre Starting Value , Valeur de départ Automatic Depth Estimation , Estimation automatique de la profondeur Ending Feathering , Fin d'adoucissement Preview Guides , Guides sur la prévisualisation Intensity , Intensité Background , Fond CMY , CMJ Sharpening , Renforcement de la netteté Cubic , Cubique Revert Layers , Inverse les calques Reverse Order , Inverse l'ordre Minimal Area , Aire minimale A Lot of Cyan , Beaucoup de Cyan Mirror-Y , Mirroir-Y Mirror-XY , Mirroir-XY Little Cyan , Un peu de Cyan X/Y-Ratio , Ratio-X/Y X-Amplitude , Amplitude-X Mask Dilation , Dilatation du masque Little Yellow , Un peu de jaune Y-Amplitude , Amplitude-Y Light , Lumière A Lot of Magenta , Beaucoup de magenta A Lot of Yellow , Beaucoup de jaune Mirror-X , Mirroir-X Little Key , Un peu de noir Little Magenta , Un peu de magenta A Lot of Key , Beaucoup de noir Lines , Lignes Method , Méthode Medium , Médium Maximal Size , Taille maximale Color Dispersion , Dispersion couleur Color Doping , Dopage couleur Low , Bas Color Balance , Balance des couleurs Color 2 , Couleur 2 Soft , Doux Color 1 , Couleur 1 Output Format , Format de sortie X-Factor , Facteur-X Stars , Étoiles Radius (%) , Rayon (%) Central Perspective Indoor , Perspective centrale intérieure Star , Étoile Spread , Propagation Human 1 , Humain 1 Coarse , Grossier Specular Size , Taille spéculaire Hue Band , Bande de teinte Closing , Fermeture Circles , Cercles Spacing , Espacement Some Blue , Un peu de bleu Squares , Carrés Lookup Size , Taille de la recherche Some Green , Un peu de vert Output as Separate Layers , Génère des calques séparés Some Red , Un peu de rouge Opening , Ouverture Keep Iterations as Different Layers , Garde les itérations comme des calques différents Linearlight , Lumière linéaire Linearity , Linéarité Linearburn , Brûlure linéaire Bottom and Top Foreground , Avant-plan du haut et du bas Bottom and Right Foreground , Avant-plan du bas et de droite Bottom and Left Foreground , Avant-plan du bas et de gauche Bottom Right , En bas à droite Bottom Left , En bas à gauche Blue & Red Chrominances , Chrominances bleues et rouges Blend Size , Taille du mélange Threshold (%) , Seuil (%) Black on Transparent White , Noir sur blanc transparent Noise Type , Type de bruit Vignette Size , Taille de vignette Vividlight , Lumière vive Kernel , Noyau Number of Orientations , Nombre d'orientations Number of Levels , Numbre de niveaux Text , Texte Stencil Type , Type de pochoir Input , Entrée White on Transparent Black , Blanc sur noir transparent Little Red , Un peu de rouge Little Green , Un peu de vert Starting Color , Couleur de départ Local Detail Enhancer , Rehausseur de détails local Center Foreground , Centre l'avant-plan Center Background , Centre l'arrière-plan Width (%) , Largeur (%) Little Blue , Un peu de bleu Interlace Vertical , Entrelace verticalement Interpolate , Interpole Isotropic , Isotrope Boundary Condition , Conditions aux bords Optimized Lateral Inhibition , Inhibition latérale optimisée Stroke Length , Longueur du trait Weird , Étrange Inter-Frames , Inter-Trames Interlace Horizontal , Entrelace horizontalement Color Temperature , Température couleur Mask , Masque Dithering , Tramage Y-Shift , Décalage-Y Y-Multiplier , Multiplicateur-Y Edge-Oriented , Orienté contours Preview Ref Point , Prévisualise point de réf 1st Color , 1ère couleur Right Foreground , Avant-plan de droite Saturation Correction , Correction de saturation Deviation , Déviation Details , Détails Gamma Compensation , Compensation gamma Scene Selector , Sélecteur de scènes Minimal Size , Taille minimale Full Bottom/top , Entier en haut/bas 2nd Color , 2ème couleur Y-Factor , Facteur-Y Flower , Fleur Recursions , Récursions Forward , En avant Z-Size , Taille-Z Zoom Factor , Facteur de zoom Flip Left / Right , Basculement gauche/droite Feature Analyzer Threshold , Seuil de l'analyseur de caractéristiques Feature Analyzer Smoothness , Régularité de l'analyseur de caractéristiques Reference Colors , Couleurs de référence Ending Color , Couleur de fin Yellow , Jaune Frequency Analyzer , Analyseur de fréquence Resolution (%) , Résolution (%) Z-Offset , Décalage-Z Pyramid , Pyramide Z-Multiplier , Multiplicateur-Z Regularization Iterations , Itérations de régularisation Erosion , Érosion Skip Others Steps , Passer les autres étapes Pinlight , Lumière d'épingle X-Shift , Décalage-X Half Bottom/top , A moitié en haut/bas Half Side by Side , A moitié côte à côte Plane , Avion Gyroid , Gyroïde Contour Threshold , Seuil de contour X-Multiplier , Multiplicateur-X Hexagon , Hexagone High , Haut Smoothing , Lissage Color on White , Couleur sur blanc Color Tolerance , Tolérance couleur Colormap , Carte de couleurs Hardmix , Mélange dur Heart , Cœur Hearts , Cœurs Height (%) , Hauteur (%) Delaunay-Guided , Guidé par Delaunay Sepia , Sépia Daylight Scene , Scène de jour Detail , Détail Depth Field Control , Contrôle du champ de profondeurs Shadow , Ombre Cup , Coupe Shift , Décalage Grid , Grille DOF Analyzer , Analyseur DOF Shadow Smoothness , Régularité de l'ombre Shapeaverage , Moyenne sur la forme Sharpen , Rendre net Anaglyph Blue/yellow , Anaglyphe bleu/jaune User-Defined , Définir par l'utilisateur Left and Right Foreground , Avant-plan gauche et droite Light Color , Couleur lumineuse Top Left , Haut gauche Top Right , Haut droite Anaglyph Red/cyan , Anaglyphe rouge/cyan Anaglyph Red/cyan Optimized , Anaglyphe rouge/cyan optimisé Level , Niveau Twirl , Tourbillon Much Blue , Beaucoup de bleu Angular , Anuglaire Value Correction , Correction de valeur Much Red , Beaucoup de rouge Much Green , Beaucoup de vert Lighter , Plus lumineux Band Width , Largeur de bande Anaglyph Green/magenta , Anaglyphe vert/magenta Anaglyph Blue/yellow Optimized , Anaglyphe bleu/jaune optimisé Top Layer Defines Object Texture , Le calque supérieur définit la texture de l'objet Light Motive , Mobile léger Allow Angle , Autorise un angle Left and Right Background , Arrière-plan gauche et droite Backward , En arrière Multiplier , Multiplicateur Anaglyph Glasses Adjustment , Ajustement des lunettes anaglyphes Underwater , Sous l'eau Left Diagonal Foreground , Avant-plan diagonal gauche Unknown , Inconnu X-Variations , Variations-X Similarity Space , Espace de similarité Sine , Sinus Sine+ , Sinus+ Laplacian , Laplacien Modern Film , Film moderne Skin Estimation , Estimation de la peau Small , Petit Connectivity , Connectivité X-Scale , Échelle-X 3rd Color , 3ème couleur Skeleton , Squelette Small (Faster) , Petit (plus rapide) Luminance Factor , Facteur de luminance Custom Layout , Disposition personnalisée Shape Max0 , Max0 de forme Shape Max , Max de forme Shape Average0 , Moyenne de forme Custom Kernel , Noyau personnalisé Shape Min0 , Min0 de forme Shape Min , Min de forme Vector Painting , Peinture vectorielle Shadows Threshold , Seuil des ombres Shape Area Max , Aire max de forme Shape Average , Moyenne de forme Shape Area Min0 , Aire min0 de forme Shape Area Min , Aire min de forme Shape Area Max0 , Aire max0 de forme Sharpen Details in Preview , Détails nets dans la prévisualisation Sharpening Strength , Force de netteté Sharpening Radius , Rayon de netteté Shrink , Rétracte Crop , Couper Green Smoothness , Réularité verte Mixer Mode , Mode de mixage Gray , Gris Graphic Colours , Couleurs graphiques Array Mode , Mode de tableau Coarsest (faster) , Plus grossier (rapide) 5th Color , 5ème couleur Highlights Threshold , Seuil des tons clairs Horizontal Amount , Quantité horizontale Closing - Original , Fermeture - Original Light Grey , Gris clair X-Centering , Centrage-X Pencil Amplitude , Amplitude du crayon Soften , Plus doux Color Burn , Brulûre des couleurs Pea Soup , Soupe de pois Alternating , En alternance Some , Un peu Color 3 , Couleur 3 Color 4 , Couleur 4 Horizontal Size (%) , Taille horizontale (%) Hue Randomness (%) , Aléa de teinte (%) Specular , Spéculaire Spatial Variance , Variance spatiale Paint , Peinture Vertical Size (%) , Taille verticale (%) Oversample , Sur-échantillonne Human 2 , Humain 2 7th Color , 7ème couleur Space , Espace Allow Outer Blending , Autorise le mélange extérieur Hot , Chaud 6th Color , 6ème couleur Circle , Cercle Spatial Scale , Echelle spatiale Spatial Radius , Rayon spatial Spatial Precision , Précision spatiale Color Channels , Canaux couleurs High (Slower) , Haut (plus lent) Periods , Périodes 4th Color , 4ème couleur Two Layers , Deux calques Attenuation Near Center (%) , Atténuation près du centre (%) Attenuation Decay , Décroissance de l'atténuation Aspect Ratio , Rapport d'aspect Pin Light , Lumière d'épingle 4096x4096 Layer , Calque 4096x4096 Smooth [Antialias] , Lisse [Anticrénelage] Perserve Luminance , Préserve la luminance Hard Mix , Mélange dur Pentagon , Pentagone Soft Dodge , Esquive douce Soft Burn , Brûlure douce Color Metric , Métrique couleur Color Intensity , Intensité de couleur 512x512 Layer , Calque 512x512 Color Grading , Étalonnage couleur Pencil Size , Taille du crayon Highlight , Tons clairs High Pass , Passe-haut Color Smoothness , Régularité des couleurs Color Space , Espace de couleurs Color Spots + Extrapolated Colors + Lineart , Taches de couleurs + Couleurs extrapolées Color Quantization , Quantification couleur Pencil Smoother Sharpness , Netteté du lisseur de crayon Low Frequency , Fréquence basse Auto Balance , Balance automatique Pencil Type , Type de crayon Repeat [Memory Consuming!] , Répète [coûteux en mémoire!] Frequency (%) , Fréquence (%) Ending Point (%) , Point de fin Enhance Details , Renforce les détails Emboss , Gaufrage Effect Strength , Force de l'effet Angle Cut , Coupure d'angle Primary Radius , Rayon primaire Purple , Violet Fractured Clouds , Nuages fragmentés Exponential , Exponentiel Expand , Étend Equalize and Normalize , Égalise et normalise Euclidean , Euclidéen Preview Gradient , Prévisualise le gradient Reverse Endianness , Inverse l'endianness Masked Image , Image masquée Masking , Masquage Dynamic Range Increase , Augmente l'intervalle dynamique Edge Sensitivity , Sensibilité au contours Edge Threshold (%) , Seuil de contours (%) Preview Precision , Précision de la prévisualisation Edge Behavior X , Comportement du contour en X Edge Behavior Y , Comportement du contour en Y Preview Original , Prévisualise l'original Reference Color , Couleur de référence Range , Intervalle Filling , Remplissage Anaglyph Green/magenta Optimized , Anaglyphe vert/magenta optimisé RGB[A] , RVB[A] Median , Médian Value Scale , Échelle de valeurs Flip , Renverse Maze Type , Type de labyrinthe Fine Scale , Échelle fine Finest (slower) , Le plus fin possible (plus lent) Radius Cut , Coupe de rayon Pencil Smoother Smoothness , Régularité du lisseur de crayon First Offset , Premier décalage Flag , Drapeau Zoom Center , Centre du zoom Zoom In , Zoome Zoom Out , Dézoome Red Smoothness , Régularité rouge Fade End , Fin du fondu Forward Horizontal , Horizontal en avant Fade Start , Début du fondu Maximal Radius , Rayon maximal Fractal Noise , Bruit fractal Quadratic , Quadratique Reduce Halos , Réduit les halos Quantization , Quantification Value Randomness (%) , Aléa des valeurs (%) Maximum Dimension , Dimension maximale Recovery , Récupération Fast Resize , Redimensionnement rapide Far Point Deviation , Déviation du point éloigné Value Precision , Précision de la valeur Quantize Colors , Quantifie les couleurs Formula , Formule Faded Print , Impression décolorée Depth (%) , Profondeur () Any , N'importe lequel Secondary Radius , Rayon secondaire Second Offset , Second décalage Y-Centering , Centrage-Y Deformation Type , Type de déformation Selected Color , Couleur sélectionnée Much , Beaucoup Minimal Region Area , Aire minimale de région Fuzzyness , Fugacité Scale Factor , Facteur d'échelle Desaturate , Désature Anti Alias , Anti-crénelage Left Foreground , Avant-plan gauche Shade , Nuance Dark Walls , Murs sombres Darkness Level , Niveau d'obscurité Dark Grey , Gris foncé Dark Motive , Motif obscur Dark Color , Couleur sombre Dark Edges , Contours sombres Self , Soi Default , Défaut Decreasing , Décroissant Seventies Magazine , Magazine 70's Debug Font Size , Taille de la fonte de débogage Anisotropic , Anisotrope Angle Range , Intervalle d'angle Precision (%) , Précision (%) Rooster , Coq Preprocessor Power , Puissance du préprocesseur Pre-Normalize Image , Pré-normalise l'image Display Debug Info on Preview , Affiche des infos de débogage sur la prévisualisation Roundness , Rondeur Power , Puissance Angle Variations , Variations d'angle Angle Inclinaison / Tilt , Inclinaison d'angle Right Diagonal Foreground , Avant-plan diagonal droit Drawing Mode , Mode de dessin Y-Variations , Variations-Y Preprocessor Radius , Rayon du préprocesseur Preserve Edges , Préserve les contours Angular Precision , Précision angulaire Full (Allows Multi-Layers) , Tous (autorise le multi-calques) Saturation Randomness (%) , Aléa de la saturation (%) Manual , Manuel Save Gradient As , Sauve le gradient comme Different Axis , Axe différent Same Axis , Même axe Y-Scale , Échelle-Y Dilation - Original , Dilaté - Original Map Tones , Projette les tons Stardust , Poussière d'étoiles Increasing , Augmentation Black Point , Point noir Central Perspective Outdoor , Perspective centrale extérieure Balance Color , Équilibre les couleurs Starting Angle , Angle de départ Blacks , Noirs Wave , Vague Vivid Light , Lumière vive Vignette Max Radius , Rayon max de la vignette LN Size , Taille LN Tiles , Tuiles Normalize Luma , Normalise la Luma Vivid Edges , Contours vifs Bottom , Bas Operator , Opérateur Original - Opening , Original - Ouverture Original - Erosion , Original - Érosion None (Allows Multi-Layers) , Aucun (autorise le multi-calques) White Walls , Murs blancs Blue Smoothness , Régularité bleue Tiled Preview , Prévisualisation en tuiles Whiter Whites , Blancs plus blancs Most , Plus Outline Size , Taille du liseret Activate 'Pencil Smoother' , Active le 'Lisseur de crayon' Night 01 , Nuit 01 Wavelet , Ondelette Normalization , Normalisation Inner Shade , Teinte intérieure Inner Radius (%) , Rayon intérieur (%) Inner Radius , Rayon intérieur View Resolution , Résolution de la vue Very High (Even Slower) , Très haut (encore plus lent) Starting Point (%) , Point de départ (%) Box , Boîte Output Filename , Nom du fichier de sortie Brighter , Plus lumineux Thumbnail Size , Taille des vignettes Balance , Équilibre Line , Ligne Normal Map , Carte normale Octogon , Octogone Local Contrast , Contraste local Bandwidth , Largeur de bande Absolute Value , Valeur absolue Brush Diameter (px) , Diamètre de brosse (px) Thinness , Finesse Symmetry Sides , Cotés symétriques Output Type , Type de sortie Lineart + Color Spots + Extrapolated Colors , Lineart + Taches de couleurs + Couleurs extrapolées Boost Contrast , Booste le contraste Inside , A l'intérieur Square to Circle , Carré en cercle Thickness (%) , Épaisseur (%) Bidirectional Rendering , Rendu bidirectionnel Thickness (px) , Épaisseur (px) Lightness Level , Niveau de luminosité Symmetry , Symétrie Input Type , Type d'entrée 8th Color , 8ème couleur Stretch , Étire Little , Petit Bump Map , Carte d'élévation Number , Nombre Vignette Strength , Force de la vignette Image Smoothness , Réularité de l'image Stretch Contrast , Étire le contraste Outer Radius , Rayon extérieur Stroke Length (px) , Longueur de trait (px) Aliasing , Crénelage Tiny , Minuscule Vignette Min Radius , Rayon min de la vignette Blur Amplitude , Amplitude du lissage Swap , Échange Linear Light , Lumière linéaire Number of Frames , Nombre de trames Warm Vintage , Vintage chaud Swap Colors , Échange les couleurs Swap Layers , Échange les calques Whirls , Tourbillons Tone Mapping , Projection des tons Linear Burn , Brûlure linéaire Number of Key-Frames , Nombre de trames clés Posterized Dithering , Tramage postérisé Number of Iterations per Scale , Nombre d'itérations par échelle Précision Détails / Details Scale , Détail/Échelle des précisions Preview Frame Selection , Prévisualise la sélection des trames Mineral Mosaic , Mosaïque minérale Preview Detected Shapes , Prévisualise les formes détectées Pre Normalize , Pré-normalise Pow , Puissance Pre-Defined Colormap , Palette de couleurs pré-définie Preview Brush , Prévisualise la brosse Number of Matches (Coarsest) , Nombre de correspondances (grossier) Preview Color Mapping , Prévisualise la projection de couleurs Pre-Gamma , Pré-Gamma Preview Data , Prévisualise les données Pre-Defined , Pré-défini Object Animation , Animation de l'objet Preview , Prévisualisation Preliminary Y-Axis Scaling , Mise à l'échelle préliminaire selon l'axe Y Object Tolerance , Tolérance de l'objet Preview All Outputs , Prévisualise toutes les sorties Object Ratio , Rapport d'aspect de l'objet Preserve Alpha? , Préserve l'Alpha ? Preserve Image Dimension , Préserve la dimension de l'image Preserve Initial Brightness , Préserve la luminosité initiale Number of Streaks , Nombre de traces Preserve Range , Préserve l'intervalle Preserve Canvas for Post Bump Mapping , Préserve le canvas pour l'après bump mapping Preserve Covariance , Préserve la covariance Number of Sizes , Nombre de tailles Number of Teeth , Nombre de dents Preliminary X-Axis Scaling , Mise à l'échelle préliminaire suivant l'axe X Minesweeper , Démineur Preserve Luminance , Préserve la luminance Min Length (%) , Longueur min (%) Min Offset (%) , Décalage min (%) Min Detail Level , Niveau de détail min Pre-Process , Pré-calcule Number of Matches (Finest) , Nombre de correspondances (le plus fin) Night 02 , Nuit 02 Preview Bands , Prévisualise les bandes Octagon , Octagone Preview Background , Prévisualise l'arrière plan Preliminary Surface Shift , Décalage préliminaire de la surface Predefined Formula , Formule pré-définie MinRGB , MinRVB Predefined Style , Style pré-defini Min Radius , Rayon min Minimal Shape Area , Aire minimale de forme One Layer per Single Color , Un calque par couleur différente One Layer (Vertical) , Un calque (vertical) One Layer per Single Region , Un calque par région différente Minimal Size (%) , Taille minimale (%) Only Leafs , Seulement les feuilles One Layer , Un calque Once Upon a Time , Il était une fois Minimal Scale (%) , Échelle minimale (%) One Layer (Horizontal) , Un calque (horizontal) Polygonize [Delaunay] , Polygonise [Delaunay] Polygonize [Energy] , Polygonise [Énergie] Pop Shadows , Fait ressortir les ombres Minimal Stroke Length , Longueur minimale de trait Popcorn Fractal , Fractales Popcorn Only Red and Blue , Seulement rouge et bleu Only Red , Seulement rouge Portrait Retouching , Retouche de portrait Minimal Color Intensity , Intensité minimale de couleur Newspaper , Papier journal Minimal Area (%) , Aire minimale (%) Offset Y-Transformation , Transformation du décalage-Y Minimal Highlights , Ton clairs minimaux Morphological Filter , Filtre morphologique Oddness (%) , Étrangeté (%) Newton Fractal , Fractale de Newton Posterization Level , Niveau de postérisation Posterize , Postérise Posterization Antialiasing , Anti-crénelage de postérisation Post-Process , Post-traitement Offset X-Transformation , Transformation du décalage-X Offset (%) , Décalage (%) Poster Edges , Contours de poster Minimal Radius , Rayon minimal Old-Movie Stripes , Rayures de vieux film Old West , Vieil Ouest Morphological Closing , Fermeture morphologique Offsets , Décalages New Filters , Nouveaux filtres Minimal Path , Chemin minimal Old Photograph , Vieille photographie Old Method - Slowest , Ancienne méthode - la plus lente Quick Enlarge , Aggrandissement rapide Quick Tonemap , Projection des tons rapides R/B Smoothness (Principal) , Régularité R/B (principal) Quick Copyright , Copyright rapide Quick , Rapide Noise [Perlin] , Bruit [Perlin] RGB Tone , Ton RVB Noise [Additive] , Bruit [Additif] RGB Quantization , Quantification RVB R/B Smoothness (Secondary) , Régularité R/B (secondaire) Noise [Spread] , Bruit [dispersé] Mid , Moyen RGB Image + Binary Mask (2 Layers) , Image RVB + Masque binaire (2 calques) Micro/macro Details Adjusted , Ajustement des micro/macro détails Non-Linearity , Non-linéarité Motion Analyzer , Analyseur de mouvement Motion-Compensated , Compensé en mouvement Pyramid Processing , Traitement pyramidal Pseudorandom Noise , Bruit pseudo-aléatoire Push Point , Point de pression Normal Inverted , Nomales inversées Mid Noise , Bruit moyen Mid Grey , Gris moyen Moving Leaf , Feuille mouvante Non-Rigid , Non-rigide Quality (%) , Qualité (%) Pythagoras Tree , Arbre de Pythagore Norm Type , Type de norme Quadtree Variations , Variations d'abres quaternaires Quality , Qualité RYB , RJB Medium Scale (Smoothed) , Échelle moyenne (lissée) Medium Scale (Original) , Échelle moyenne (originale) Medium Frequency Layer , Calque de fréquence moyenne Night 04 , Nuit 04 Nine Layers , Neuf calques Merge Brightness / Colors , Fusionner luminosité/couleurs No Rescaling , Pas de redimensionnement No Recovery , Pas de récupération Memories , Mémoires No Masking , Pas de masquage Radioactive Flower , Fleur radioactive Night From Day , Nuit à partir du jour Night 05 , Nuit 05 RYB8 , RJB8 Radial Edge Behaviour , Comportement de contour radial Radial Influence , Influence radiale No Transparency , Pas de transparence Noise , Bruit Metallic Look , Look métallique Metal , Métal Noise Level , Niveau de bruit Night 03 , Nuit 03 Metropolis , Métropolis Noise Scale , Échelle de bruit Metric , Métrique RGBA Image (Updatable / 1 Layer) , Image RVBA (modifiable / 1 calque) Merging Steps , Étapes de fusion Merging Mode , Mode de fusion Merge Layers? , Fusionne les calques ? RGBA Image (Full-Transparency / 1 Layer) , Image RVBA (En transparence / 1 calque) Mess with Bits , S'amuser avec les bits RGB8 , RVB8 RGBA , RVBA No-Skip , Pas de saut RGBA Foreground + Background (2 Layers) , Avant-plan RVBA + Arrière plan (2 calques) Pseudo-Gray Dithering , Tramage en pseudo-gris Nostalgia Honey , Miel de nostalgie Normalize Scales , Normalise les échelles Preview Without Alpha , Prévisualise sans le Alpha Preview Tones Map , Prévisualise la carte des tons Preview Shape , Prévisualise la forme Min Angle Deviation (deg) , Moviz 34 , Preview Subsampling , Preview Time , Normalize Input , Primary Radius (%) , Mighty Details , Morroco 16 , Primary Shift , Primary Gamma , Moviz 44 , Prewitt-Y , Primary Angle , Primary Color , Primary Factor , Preview Selection , Preview Light Shape , Preview Mapping , Preview Mask , Number of Clusters , Preview Only Shadow , Morphology Strength , Number of Iterations , Preview Grain Alone , Number of Inter-Frames , Preview Grid , Morphology Painting , Min Cut (%) , Nostalgic , Moviz 45 , Min Area % , Preview Reference Circle , Moviz 46 , Preview Opacity (%) , Number of Angles , Number of Added Frames , Preview Progress (%) , Nothing , Normal Output , Process by Blocs of Size , Processing Mode , Progressen , Propagation , Process Transparency , Process Channels Individually , Middle Grey , Process Top Layer Only , Mid-Light Grey , Mid-Dark Grey , Mid Tone Contrast , Prussian Blue , Mid Offset , Mostly Blue , Moviz 37 , Provia , Moviz 36 , Proportion , Protanomaly , Protanopia , Protect Highlights 01 , Middle Scale , Print Size Unit , Print Size Width , Privacy Notice , Pro Neg Hi , Moviz 43 , Print Frame Numbers , Primary Twist , Print Adjustment Marks , Print Films (12) , Normalize Illumination , Midtones Hue , Midpoint Shift , Midpoint , Probability Map , Procedural , Process As , Pro Neg Std , Mosaic , Midtones Color Intensity , Moviz 35 , Midtones Brightness , Normalize Brightness , Minimal Value , Output CLUT Resolution , Moire Removal Method , Output CLUT , Output Ascii File , Moviz 26 , Output Chroma NR , Mona Lisa , Output Each Piece on a Different Layer , Output Directory , Output Corresponding CLUT , Output Coordinates File , Outline Smoothness , Peppers , Outline Opacity , Outline Contrast , Negative Effect , Moire Removal , Moody-5 , Pencils , Nature & Wildlife-5 , Outlined , Outline Thickness , Moody-4 , Moviz 18 , Paw , Moody-2 , Pen Drawing , Penalize Patch Repetitions , Pattern Width , Nb Branches / Rays , Mondrian: Gray Tree , Output HTML File , Moviz 19 , Nature & Wildlife-9 , Moviz 17 , Nature & Wildlife-7 , Nature & Wildlife-6 , Moody-3 , Pencil Portrait , Nature & Wildlife-8 , Negative Color Abstraction , Moviz 25 , Pencil , Mondrian: Evening; Red Tree , Mondrian: Composition in Red-Yellow-Blue , PictureFX - Faux Infrared Color P2 , PictureFX - Faux Infrared Color P3 , Negative [Old] (44) , PictureFX - Faux Infrared R0a , PictureFX - Faux Infrared R0b , PictureFX - Faux Infrared B&W1 , Modern Films 06 , Picabia: Udnie , Picasso: Seated Woman , Picasso: The Reservoir - Horta De Ebro , PictureFX (25) , Neighborhood Smoothness , Modern Films 04 , Nemesis , Neon 770 , Moviz 16 , Neighborhood Size (%) , Name , PictureFX - Faux Infrared YP1 , Piece Complexity , Modern Films 05 , Piece Size (px) , Modern Films 07 , Moiré Animation , Perturbation , Petallian , Petals , Phase , Moviz 27 , Moody-6 , Periodic Dots , Periodicity , Nature & Wildlife-4 , Negative [Color] (13) , Moody-7 , Natural (vivid) , PhotoComix Preset , Photoillustration , Negative [New] (39) , Nature & Wildlife-1 , Nature & Wildlife-3 , Nature & Wildlife-2 , Phone , Modulo Value , Nature & Wildlife-10 , Monet: San Giorgio Maggiore at Dusk , Moody , Mono-Directional , Mono+Ye , Output Width , Moviz 20 , Padding (px) , PIXLS.US (31) , Pack , Pack Sprites , Pacman , Moviz 22 , Output Stroke Layer On , Output Sharpening , Mono+G , Output Saturation , Painting Order , Painting Opacity , Paint Effect , Mono+R , Paint Splat , Paint With Brush , Painting , PI-Based Scaling , Outside-In , Outward , Overall Blur , Overall Contrast , Overall Lightness , Outside Color , Montage , Near Black , Moviz 21 , Output to Folder , Outside , Montage Type , Overshoot , P''(z) , P(z) , PCA Transfer , Overload Y , Overlap (%) , Monochrome 2 , Overload Count** , Overload X , Monochrome 1 , Patch Size for Synthesis (Final) , Patch Smoothness , Patch Variance , Pattern , Pattern Angle , Patch Size for Synthesis , Mono , Patch , Patch Measure , Monkey , Patch Size for Analysis , Negate , Pattern Weight , Monet: Wheatstacks - End of Summer , Moviz 24 , Monet: Water-Lily Pond , Pattern Variation 3 , Pattern Height , Pattern Type , Moviz 23 , Pattern Variation 1 , Pattern Variation 2 , Output Height , Paladin 1875 , Paper Texture , Nb Cercles Extérieurs / Circles Surrounding , Parabolic , Output Preset as a HaldCLUT Layer , Moody-10 , Paintstroke , Neat Merge , Output Region Delimiters , Moody-1 , Paladin , Moviz 2 , Pasadena 21 , Passing By , Pastell Art , Output Layers , Parrots , Output Multiple Layers , Nebulous , Parabolic Chaos , Mono Tinted , Parameter Settings , Opposing , Polaroid PX-100UV+ Warm , Polaroid PX-100UV+ Warm + , Mirror Effect , Multiple Colored Shapes Over Transp. BG , Neutral Pump , Mirror X , Moviz 12 , Neutral Color , Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ Cold +++ , Polaroid PX-680 + , Morph [Interactive] , Mul , Operation Yellow , Ministeck , Polaroid PX-680 , Polaroid PX-100UV+ Warm ++ , Multi-Layer Etch , Polaroid PX-100UV+ Warm +++ , Neutral Teal Orange , Neutral Warm Fade , Mirror Y , Moviz 28 , Polaroid 690 Warm + , Polaroid 690 Warm ++ , Orange Underexposed , Multipliers , Oranges , Order By , Order , Polaroid 690 Warm , Mixed Mode , Mix , Morning 6 , Orange Dark 4 , Morph Layers , Moviz 29 , Multiple Layers , Moviz 13 , Orange Tone , Orange Dark Look , Polaroid PX-100UV+ Cold , Orange Dark 7 , Polaroid PX-100UV+ Cold + , Polaroid PX-70 Warm + , Polaroid PX-70 Warm ++ , Polaroid Polachrome , Opacity Gamma , Opacity Gain , Polaroid PX-70 Warm , Polaroid PX-70 Cold , Polaroid PX-70 Cold + , Polaroid PX-70 Cold ++ , Opacity as Heightmap , Opacity Threshold (%) , Morphological - Fastest Sharpest Output , Pole Lat , Minimalist Caffeination , Pole Long , Pole Rotation , Polaroid Time Zero (Expired) Cold , Polaroid Time Zero (Expired) , Opacity Factor , Polaroid Time Zero (Expired) + , Polaroid Time Zero (Expired) ++ , MorphoStrenght , Opaque Pixels , Polaroid PX-680 Cold ++a , Minimum Red:Blue Ratio in the Fringe , Minimum Dimension , Minimum Brightness , Minimum , Open Interactive Preview , Polaroid PX-680 ++ , New Curves [Interactive] , Polaroid PX-680 Cold , Polaroid PX-680 Cold + , Polaroid PX-680 Cold ++ , Output as Multiple Layers , Polaroid PX-70 + , Polaroid PX-70 ++ , Polaroid PX-70 +++ , Moviz 30 , Opaque Regions on Top Layer , Opaque Skin , Polaroid PX-680 Warm , Moviz 3 , Polaroid PX-680 Warm + , Polaroid PX-680 Warm ++ , Polaroid 690 Cold ++ , Placement , Orthogonal Radius , Placement of Distortion , Plaid , Moviz 14 , Mixer [YCbCr] , Mod , Pixel Values , Orwo NP20-GDR , Pixelmator (45) , Orton Glow , Point #2 , Netteté / Sharpness , Point #3 , Point 1 , Muted 01 , Point #1 , Mixer [RGB] , Neon Lightning , Plasma Effect , Plot Type , Point #0 , Mode 0 , Outer Radius (%) , Pitaya 15 , Modern Films 01 , Pixel Denoise , Mystic Purple Sunset , Nah , Moviz 15 , Pink Fade , Modern Films 03 , Naif , Modern Films 02 , Ouline Color , Others (69) , Pixel Size , Pixel Sort , Mode 1 , Muted Fade , Outer Length , Outer Fading , Modeler / Shape , Outer , Pixel Push , Polaroid 669 Cold , Origin , Polaroid 669 Cold + , Moonlight , Orientation Only , Moon2panorama , Mixer [HSV] , Polaroid 669 +++ , Mixer [CMYK] , Original , Moody-9 , Polaroid 690 Cold , Mixer , Multiscale Operator , Moonrise , Polaroid 690 Cold + , Orientation Coherence , Mixer Style , Polaroid 672 , Polaroid 690 + , Polaroid 690 ++ , Moonlight 01 , Polaroid 669 ++ , Poisson + Gaussian , Polar Transform , Polaroid , Moody-8 , Polaroid 664 , Mixer [Lab] , Point 2 , Point Warp , Mixer [PCA] , Point Width , Mute Shift , Polaroid 665 Negative HC , Polaroid 667 , Original - (Opening + Closing)/2 , Polaroid 669 + , Munch: The Scream , Polaroid 665 Negative - , Polaroid 665 , Polaroid 665 + , Polaroid 665 ++ , Polaroid 665 Negative , Polaroid 665 Negative + , Tones to Layers , Tone Threshold , Tone Presets , Tone Mapping [Fast] , Total Layers , Top-Right Vertex (%) , Top-Left Vertex (%) , Top , Tone Enhance , Tone Blur , Tonal Bandwidth , Tolerance to Gaps , Tone Mapping Soft , Tone Mapping Fast , Tone Mapping (%) , Tone Gamma , Total Variation , Transparent Background , Transmittance Map , Transition Smoothness , Transition Shape , Transparent on Black , Transparent Skin , Transparent Color , Transparent Black & White , Transfer Colors [Patch-Based] , Transfer Colors [PCA] , Transfer Colors [Histogram] , Tout , Transition Map , Transformer , Transform , Transfer Colors [Variational] , Toggle to View Base Image , Threshold Mid , Threshold Max , Threshold Low , Threshold High , Tiger , Tic-Tac-Toe , Thriller 2 , Threshold On , Thorn Fractal - Secant Sea , Thinning (Slow) , Thinning , Thin Separators , Threshold Etch , Three Layers , Thorny Petal 2 , Thorny Petal 1 , Tikhonov , Timed Image , Time , Tilt , Tiles to Layers , Toes , Toasted Garden , To Nadir / Zenith , To Equirectangular , Tiled Isolation , Tileable Rotation , Tile Size , Tile Poles , Tiled Rotation , Tiled Random Shifts , Tiled Parameterization , Tiled Normalization , Unquantize [JPEG Smooth] , Unpurple , Unearthing Origami , Undo Anaglyph , Up-Left , Untwist , Unstrip , Unsharp Mask , UltraWarp++++ , Ultra Water , Type Flocon / Snowflake , Type Aperçu , Undeniable 2 , Undeniable , Unbounded , Unaligned Images , Up-Right , Urban 04 , Urban 03 , Urban 02 , Urban 01 , Use Individual Depth Map , Use Bi-Sided Convolution? , Urban Cowboy , Urban 05 , Uppercase Letters , Upper Side Orientation , Upper Layer Is the Top Layer for All Blends , Update Neural Network , Upscale [Scale2x] , Upscale [Edge] , Upscale [Diffusion] , Upscale [DCCI2x] , Two-By-Two , Trig-6 , Trig-4 , Triangular Vb , Triangular Va , Trunk Color , True Colors 8 , Tritanopia , Tritanomaly , Triangles (Outline) , Trent 18 , Tree , Transparent on White , Triangular Pattern , Triangular Interweaving , Triangular Hb , Triangular Ha , Trunk Opacity (%) , Twist Strength (%) , Twist Angle (°) , Tweed 71 , Turn on Rotate and Twirl , Twisted Tunnel , Twisted Rays , Twisted Heart 2 , Twisted Heart , Tune HSV Colors , Tulips , Tubular Waves , Trunks , Turkiest 42 , Turing , Turbulent Halftone , Tunnel , Summer (alt) , Summer , Subtractive , Subtle Yellow , Sunny (rich) , Sunny (alt) , Sunny , Sunlight Love , Subpixel Level , Subpixel Interpolation , Sublevel , Subdivisions , Subtle Green , Subtle Blue , Subsampling Level , Subsampling (%) , Sunny (warm) , Sutro FX , Surface Disturbance Multiplier , Surface Disturbance , Surface Angle , Sweet Bubblegum , Swap Sides , Swap Radius / Angle , Swan , Super Warm , Sunset Violet Mood , Sunset Intense Violet Blue , Sunset Aqua Orange , Superimpose with Original? , Superformula , Super-Pixels , Super Warm (rich) , Stylize , Stereoscopic Window Position , Stereoscopic Image Alignment , Stereographic Projection , Stereo Window Position , Street , Streak , Strands , Straight , Stencil , Std Thickness Factor (%) , Std Length Factor (%) , Std Branching , Stereo Image , Steps , Step (%) , Step , Strength Effect , Strong Antialias , Strong , Stroke Strength , Stroke Angle , Style Variations , Style , Studio Skin Tone Shaper , Structure Smoothness , Stretch Colors , Strength Shadows , Strength Midtones , Strength Highlights , Stroke , Stripe Orientation , Strip , Stretch Factor , Temperature Balance , Teigen 28 , Teddy , TechnicalFX - Backlight Filter , Tension Green 2 , Tension Green 1 , Tends to Be Square , Ten Layers , Teal Moonlight , Teal Magenta Gold , Teal Fade , Tarraco , Teal Orange 3 , Teal Orange 2 , Teal Orange 1 , Teal Orange , Tension Green 3 , Thelypteridaceae , The Matrices , The Game of Life , Textured Glass , Thin Edges , Thin Brush , Thickness(%) , Thickness Factor , Tertiary Gamma , Tertiary Factor , Terra 4 , Tension Green 4 , Texture Enhance , Texture , Tertiary Twist , Tertiary Shift , Target Color #9 , Target Color #10 , Target Color #1 , Taquin , Tanh Stroke , Target Color #14 , Target Color #13 , Target Color #12 , Target Color #11 , Synthesis Scale , Symmetrize , Symmetric 2D Shape , Sweet Gelatto , Tangent Radius , Tan(z) , Taille / Size , Taiga , Target Color #15 , Target Color #4 , Target Color #3 , Target Color #24 , Target Color #23 , Target Color #8 , Target Color #7 , Target Color #6 , Target Color #5 , Target Color #19 , Target Color #18 , Target Color #17 , Target Color #16 , Target Color #22 , Target Color #21 , Target Color #20 , Target Color #2 , Xb-Multiplier , Xb-Exponent , Xa/Xb , Xa-Sign , Y Center , Xy-Axes , Xb-Sign , Xb-Offset (deg.) , XY-Factor , XY-Coordinates (%) , XY-Axis Mode? , XY-Axis Formula U , Xa-Offset (deg.) , Xa-Multiplier , Xa-Exponent , XY-Light , Y Origine , Y-Coordinate [Manual] , Y-Coordinate , Y-Centering (%) , Y-Center , Y-Factor (%) , Y-End (%) , Y-Dispersion , Y-Curvature , Y-Axis Formula T , Y-Axis Formula S , Y-Angle (deg.) , Y(t) , Y-Border , Y-Balance , Y-Axis Then X-Axis , Y-Axis Formula U , XY-Axis Formula T , X-Dispersion , X-Curvature , X-Coordinate [Manual] , X-Coordinate , X-Min , X-Max , X-Factor (%) , X-End (%) , X-Axis Then Y-Axis , X-Axis Formula U , X-Axis Formula T , X-Axis Formula S , X-Centering (%) , X-Center , X-Border , X-Balance , X-Motion , X1 (none) , X-Warping , X-Start (%) , X-Smoothness , XY-Axis Formula S , XY-Axis , XY-Amplitude , XY Mirror , X-Rotation , X-Resolution , X-Ratio , X-Ombre X-Shadow , X-Size (px) , X-Shift (px) , X-Shift (%) , X-Seed (Julia) , Z^^3 - 1 , Z^^2 - 1 , Z-Scale , Z-Rotation , Za-Exponent , Z^^8 + 15*z^^4 - 1 , Z^^6 + Z^^3 - 1 , Z^^5 - 1 , You Can Do It , Yellowstone , Yellow Smoothness , Yellow Shift , Z-Range , Z-Motion , Z-Angle (deg.) , Youssef Hossam (5) , Za-Multiplier , ZilverFX - B&W Solarization , Zero , Zelda , Zeke 39 , Zoom (%) , Zone System , ZilverFX - Vintage B&W , ZilverFX - InfraRed , Zb-Exponent , Za/Zb , Za-Sign , Za-Offset (deg.) , Zed 32 , Zb-Sign , Zb-Offset (deg.) , Zb-Multiplier , Yellow Film 01 , Y-Warping , Y-Start (%) , Y-Smoothness , Y-Size (px) , YCbCr (Luma Only) , YCbCr (Distinct) , YCbCr (Chroma Only) , YAG Effect , Y-Resolution , Y-Ratio , Y-Ombre Y-Shadow , Y-Motion , Y-Shift (px) , Y-Shift (%) , Y-Seed (Julia) , Y-Rotation , YCbCr (Luma/Chroma) , Yb-Offset (deg.) , Yb-Multiplier , Yb-Exponent , Ya/Yb , Yellow Factor , Yellow Color , Yellow 55B , Yb-Sign , YES8 , YCbCrJPEG , YCbCrGLIC , YCbCr (Mixed) , Ya-Sign , Ya-Offset (deg.) , Ya-Multiplier , Ya-Exponent , Vertical Tiles , Vertical Stripes , Vertical Length , Vertical Blur , Very Warm Greenish , Very High , Very Fine , Very Course 5 , Vertical 1 Length , Vertical 1 Amount , Vertex Type , Velvia , Vertical Array , Vertical Amount , Vertical 2 Length , Vertical 2 Amount , Vibrant , Vintage 01 , Vintage (brighter) , Vintage (alt) , Vintage , Vintage 05 , Vintage 04 , Vintage 03 , Vintage 02 , Victory , Vibrant (crome-Ish) , Vibrant (contrast) , Vibrant (alien) , Vignette Strenth , Vignette Contrast , Vignette , View Outlines Only , Velocity , V Cutoff , Uzbek Samarcande , Uzbek Marriage , Uzbek Bukhara , Value Bottom , Value Blending , Val Range , VFB 21 , Use Top Layer as a Priority Mask , Use Negative Overload , Use Maximum Tones , Use Light , Usure [bruit/noise] , User-Defined (Bottom Layer) , Use as Saturation , Use as Hue , Value Factor , Variability , Van Gogh: Wheat Field with Crows , Van Gogh: The Starry Night , Van Gogh: Irises , Variation C , Variation B , Variation A , Variance , Value Shift , Value Range , Value Randomness , Value Normalization , Van Gogh: Almond Blossom , Value Variance , Value Top , Value Smoothness , Whitening , White to Black , White on Transparent , White Point , Wipe , Winter Lighthouse , Wind , Whites , Western Lut 2 , Western , Webbing Cubic Unearthing , Weave , White Level , White Layers , White Dices , Whirl Drawing , Wiremap , X 9 , X 8 , X 6 , X 4 , X-Angle (deg.) , X(t) , X Origine , X Center , X 16 , X 12 , Work on Frameset , Wooden Gold 20 , X 3 , X 27 , X 2 , X 18 , Wavy , Vivid Screen , Vivid Edges* , Visible Watermark , Virtual Landscape , Warm , Warhol , Wall , Voronoi , Vintage Style , Vintage Mob , Vintage Chrome , Vintage 163 , Vireo 37 , Violet Taste , Vintage Warmth 1 , Vintage Tone (%) , Warm (highlight) , Waterslide , Waterfall , Water , Warp by Intensity , Waves Smoothness , Waves Amplitude , Wavelength , Wave(s) , Warm Fade 1 , Warm Fade , Warm Dark Contrasty , Warm (yellow) , Warp [Interactive] , Warm Teal , Warm Sunset Red , Warm Neutral , Rotations , Rotated (crush) , Rotated , Rotate Tree , Row by Row , Round , Rotinv-Y , Rotinv-X , Rotate (vibrant) , Rotate (muted) , Rose , Rosace , Rotate Hue Bands , Rotate 90 Deg. , Rotate 270 Deg. , Rotate 180 Deg. , S-Curve Contrast , Saturation EQ , Saturation Channel Gamma , Saturated Blue , Satin , Saturation Randomness , [Cyan]MYK , Saturation Increase , Saturation Factor , Sampling , Sample Image , Same as Input , SRGB Conversion , Sat Top , Sat Range , Sat Bottom , Sans , Rorschach , Revert Layer Order , Reversing , Reverse Tangent Division , Reverse Pow , Right Eye View , Right Diagonal Foreground , Right , Rice , Reverse Flip , Reverse Effect , Reverse Bytes , Reverse Bits , Reverse Motion , Reverse Mod , Reverse Gradient , Reverse Frame Stack , Right Position , Rodilius [Animated] , Rodilius , Roddy (by Mahvin) , Roddy , Rollei Retro 80s , Rollei Retro 100 Tonal , Rollei Ortho 25 , Rollei IR 400 , Rigid , Right Stream Only , Right Slope , Right Side Orientation , RocketStock (35) , Robert Cross 2 , Robert Cross 1 , Ripple , Selected Frame , Selected Colors , Select-Replace Color , Select By , Selective Gaussian , Selective Desaturation , Selection , Selected Mask , Segment Max Length (px) , Sectors , Secondary Twist , Secondary Shift , Segments Strength , Segments , Segmentation Smoothness , Segmentation Edge Threshold , Self Glitching , Set Frame Format , Set Aspect Only , Serpent , Seringe 4 , Shade Back to First Color , Shade Angle , Sevsuz , Seven Layers , Sequence X4 , Sensitivity , Semi-Thorny Petallian , Self Image , Serial Number , Serenity , Sequence X8 , Sequence X6 , Secondary Radius (%) , Scale Style to Fit Target Resolution , Scale RGB , Scale Plasma , Scale Output , Scaling X-Axis , Scaling Factor , Scaled , Scale Variations , Saving Private Damon , Save CLUT as .Cube or .Png File , Saturation Smoothness , Saturation Shift , Scale CMYK , Scale 2 , Scale 1 , Scalar , Scaling XY-Axis , Second Radius , Second Color , Secant , Seamless Turbulence , Secondary Gamma , Secondary Factor , Secondary Color , Second Size , Scr , Science Fiction , Scanlines , Scaling Y-Axis , Seamless Deco , Seamcarve , Sea , Screen Border , Red Chroma Smoothness , Red Chroma Shift , Red Chroma Factor , Red Blue Yellow , Red Dream 01 , Red Day 01 , Red Color , Red Chrominance , Recursions Flocon / Snowflake , Recursion Depth , Rectangle , Recover Shadows , Red Afternoon 01 , Red - Green - Blue - Alpha , Red - Green - Blue , Recursive Median , Red Factor , Reeve 38 , Reduce Redness , Reduce RAM , Reduce Noise , Refraction , Reflection , Reference Angle (deg.) , Reference , Red Wavelength , Red Shift , Red Rotations , Red Level , Reds Oranges Yellows , Reds , Red-Green , Red-Eye Attenuation , Recover Highlights , Random [non-Transparent] , Random Shade Stripes , Random Pattern , Random Colors , Randomness , Randomized , Randomize Seed , Randomize , Rainbow , Rain & Snow , Radius [Manual] , Radius / Angle , Random Color Map , Random Color Ellipses , Random Angle , Raindrops , Ratios , Rcx , Rays , Rayons Couleurs ABCDEFG , Rayons Couleurs ABCDEF , Recover , Reconstruct From Previous Frames , Recompose , Rebuild From Similar Blocs , Rayon Cercle Milieu / Radius Middle Circle , Rayon Cercle Extérieur / Radius Outer Circle A (>0 W%) (<0 H%) , Ray Length , Raw , Rayons Couleurs ABCDE , Rayons Couleurs ABCD , Rayons Couleurs ABC , Rayons Couleurs AB , Resolution (px) , Resize Image for Optimum Effect , Reset View , Rescaling , Resynthetize Texture [FFT] , Result Type , Result Image , Rest 33 , Replace Layer with CLUT , Replace (Sharpest) , Replace , Repeats , Reptile , Replacement Color , Replaced Color , Replace With White , Resynthetize Texture [Patch-Based] , Retro Fade , Retro Brown 01 , Retro , Retourner Motif / Flip Pattern , Return Scaling , Retro Yellow 01 , Retro Summer 3 , Retro Magenta 01 , Retouched Image , Retouched Areas Only , Retouch Layer , Retinex , Retouching Style , Retouched and Sharpened Areas , Retouched Image Final , Retouched Image Basic , Repair Scanned Document , Relative Warping , Relative Size , Relative Block Count , Rejected Mask , Relief Light , Relief Contrast , Relief Amplitude , Release Notes , Regularity (%) , Regularity , Regular Grid , Refractive Space , Rejected Colors , Reject , Regularization Factor , Regularization (%) , Relief Size , Rendu , Rendering Mode , Render on White Areas , Render on Dark Areas , Rendu a Gauche , Rendu a Droite , Rendu En Haut , Rendu En Bas , Remove Tile , Remove Hot Pixels , Remove Artifacts From Micro/Macro Detail , Relief Smoothness , Render Routine for Wiggle Animations , Render Multiple Frames , Remy 24 , Removed Filters , Source Color #20 , Source Color #2 , Source Color #19 , Source Color #18 , Source Color #24 , Source Color #23 , Source Color #22 , Source Color #21 , Source Color #13 , Source Color #12 , Source Color #11 , Source Color #10 , Source Color #17 , Source Color #16 , Source Color #15 , Source Color #14 , Source Color #3 , Spatial Metric , Spatial Bandwidth , Span , Spaceship , Spatial Tolerance , Spatial Step , Spatial Sampling , Spatial Regularization , Source Color #7 , Source Color #6 , Source Color #5 , Source Color #4 , Source Y-Tiles , Source X-Tiles , Source Color #9 , Source Color #8 , Source Color #1 , Smoothing Type , Smoothing Style , Smoother Softness , Smoother Sharpness , Sobel-X , Snowflake 2 , Snowflake , Smoothness (px) , Smooth [Wavelets] , Smooth [Total Variation] , Smooth [Thin Brush] , Smooth [Skin] , Smoother Edge Protection , Smoothen Background Reconstruction , Smooth-Artistry , Smooth [Wiener] , Sobel-Y , Solidify , Solarized Color2 , Solarize Color , Solarize , Source (%) , Sorting Criterion , Sort Colors , Solve Maze , Soft Glow [Animated] , Soft Glow , Soft Fade , Soft Light , Soften Guide , Soften All Channels , Soft Warming , Soft Random Shades , Square 1 , Square (Inv.) , Spy 29 , Sprocket 231 , Stabilizer , Squares (Outline) , Squared-Euclidean , Square 2 , Spread Amount , Spotify , Sponge , Split Type-5 , Spring Morning , Spreading , Spread Noise Amount , Spread Angles , Stained Glass , Starting Pattern , Starting Level , Starting Frame , Start of Mid-Tones , Std Angle (deg.) , Stationary Frames , Starting Scale (%) , Starting Point , Star: -5*(z^3/3-Z/4)/2 , Standard [No Scan] , Standard Deviation , Standard (256) , Start Frame Number , Start Color , Start Angle , Stars (Outline) , Split Type-4 , Spiderweb-Diamond , Spherize , Speed , Specular Light , Spline B2 , Spline B1 , Spiral RGB , Spiral , Specify Different Output Size , Specific Saturation , Special Effects , Spatial Transition , Specular Intensity , Specular Centering , Specular (%) , Specify HaldCLUT As , Spline B3 , Split Details [Gaussian] , Split Details [Alpha] , Split Brightness / Colors , Split Base and Detail Output , Split Type-3 , Split Type-2 , Split Type-1 , Split Details [Wavelets] , Spline Editor , Spline B6 , Spline B5 , Spline B4 , Splines , Spline Roundness , Spline Max Length (px) , Spline Max Angle (deg) , Shift Point , Shift Linear Interpolation? , Sharpness (%) , Sharpest , Shininess , Shine , Shift Y , Shift X , Sharpen [Unsharp Mask] , Sharpen [Tones] , Sharpen [Texture] , Sharpen [Shock Filters] , Sharpening Type , Sharpening Layer , Sharpened Areas Only , Sharpen [Whiten] , Shivers , Sierpinksi Design , Side by Side , Shuffle Pieces , Show Watershed , Signs , Sigma 2 , Sigma 1 , Sierpinski Triangle , Show Both Poles , Short , Shopping Cart , Shock Waves , Show Grid , Show Frame , Show Fill Ratio? , Show Difference , Sharpen [Richardson-Lucy] , Shadows Color Intensity , Shadows Brightness , Shadows Abstraction , Shadow Size , Shadows Zone , Shadows Selection , Shadows Lightness , Shadows Hue Shift , Shading (%) , Shadebobs , Shade Strength , Shade Bobs , Shadow Patch , Shadow King 39 , Shadow Intensity , Shadow Contrast , Shamoon Abbasi (25) , Sharpen [Gradient] , Sharpen [Gold-Meinel] , Sharpen [Deblur] , Sharpen Shades , Sharpen [Octave Sharpening] , Sharpen [Multiscale] , Sharpen [Inverse Diffusion] , Sharpen [Hessian] , Shapes , Shapeism , Shape Median0 , Shape Median , Sharpen Radius , Sharpen Object , Sharpen Edges Only , Sharp Abstract , Smooth Dark , Smooth Crome-Ish , Smooth Colors , Smooth Clear , Smooth Looping , Smooth Light , Smooth Green Orange , Smooth Fade , Smart Contrast , Smart , SmallHD Movie Look (7) , Slow Recovery , Smooth Amount , Smooth Abstract , Smokey , Smart Threshold , Smooth Only , Smooth [NL-Means] , Smooth [Median] , Smooth [Mean-Curvature] , Smooth [IUWT] , Smooth [Selective Gaussian] , Smooth [Perona-Malik] , Smooth [Patch-PCA] , Smooth [Patch-Based] , Smooth [Bilateral] , Smooth [Anisotropic] , Smooth Teal Orange , Smooth Sailing , Smooth [Guided] , Smooth [Geometric-Median] , Smooth [Diffusion] , Smooth [Block PCA] , Slow (Accurate) , Single Opaque Shapes Over Transp. BG , Single Layer , Single Image Stereogram , Single Custom Depth Map , Size Variance , Six Layers , Sinusoidal Water Distortion , Sinusoidal Liquid , Simplification , Simple Noise Canvas , Simple Local Contrast , Silver , Single (Merged) , Sine Curve , Sin(z) , Simulate Film , Size for Bright Tones , Skip Finest Scales , Skin Tone Protection , Skin Tone Mask , Skin Tone Colors , Slide [Color] (26) , Slice Luminosity , Skip to Use the Mask to Boost , Skip This Step , Size-2 , Size-1 , Size of Frame Numbers (%) , Size for Dark Tones , Skin Mask , Sketch , Skeletik , Size-3 , Chroma Noise , Chroma , Christine Garner: Willow Charcoal , Christine Garner: Sketching Pastel , Chrominances Only (CbCr) , Chrome 01 , Chromaticity From , Chromatic Aberrations , Christine Garner: Pencil , Chessboard , Chemical 168 , Charset , Charcoal , Christine Garner: Dark Coloured Pencil , Christine Garner: Colour Pencil Sepia , Christine Garner: Black Colour Pencil , Chick , Cinema 2 , Cinema , Cine Warm , Cine Vibrant , Cinema Noir , Cinema 5 , Cinema 4 , Cinema 3 , Cine Teal Orange 2 , Cine Blue , Cine Basic , Cine BM4k , Chrominances Only (ab) , Cine Teal Orange 1 , Cine Drama , Cine Cold , Cine Bright , Chaotic Tangent , Center Y , Center X-Shift , Center X , Center Smoothness , Centers Color , Centering / Scale , Centering (%) , Center Y-Shift , Center Size , Cat , Cartoon [Animated] , Cartoon , Cartesian Transform , Center Help , Cell Size , Category , Cat Pad , Chaos Spacetime , Chaos Deep-Vibrato , Channels to Layers , Channel Processing , Chaotic Hooks Unearthing , Chaotic Hooks , Chaotic Creation , Chaos-Vibrato , Channel #3 , Cercle / Circle C , Central Perspective Outdoor , Centimeter , Centers Radius , Channel #2 , Channel #1 , Chalk It Up [Fr] , Cercle / Circle D , Cinematic (8) , Clear Control Points , Clean Text , Clean , Clayton 33 , Clip CMYK , Clip , Cliff , Clear Teal Fade , Classic Teal and Orange , Classic Films 01 , Classic Chrome , Clarity , City Dust , Classic Films 05 , Classic Films 04 , Classic Films 03 , Classic Films 02 , Cold Simplicity 2 , Cold Ice , Cold Clear Blue 1 , Cold Clear Blue , Color 3 (Bottom/Left Corner) , Color 2 (Up/Right Corner) , Color 1 (Up/Left Corner) , Color (rich) , Coffee 44 , Clouds , Closing - Opening , Closeup , Clip RGB , Coefficients , Cobi 3 , Coarse to Fine , Clouseau 54 , City 7 , Cinematic-01 , Cinematic for Flog , Cinematic Travel (29) , Cinematic Mexico , Cinematic-10 , Cinematic-1 , Cinematic-03 , Cinematic-02 , Cinematic Lady Bird , Cinematic 04 , Cinematic 03 , Cinematic 02 , Cinematic 01 , Cinematic Forest , Cinematic 07 , Cinematic 06 , Cinematic 05 , Circle to Square , Circle Transform , Circle Art , Circle Abstraction , City , Circles 2 , Circles 1 , Circles (Outline) , Circle (Inv.) , Cinematic-5 , Cinematic-4 , Cinematic-3 , Cinematic-2 , Cinematic-9 , Cinematic-8 , Cinematic-7 , Cinematic-6 , Carnivorous Plant , Blur [Gaussian] , Blur [Depth-Of-Field] , Blur [Bloom] , Blur [Angular] , Blur [Radial] , Blur [Multidirectional] , Blur [Linear] , Blur [Glow] , Blur Strength , Blur Frame , Blur Factor , Blur Dodge and Burn Layer , Blur Amount , Blur Standard Deviation , Blur Shade , Blur Precision , Blur Percentage , Border Outline , Border Opacity , Border Color , Boost-Fade , Bottles , Border Width , Border Thickness (%) , Border Smoothness , Boost Stroke , Bob Ford , Boats , Blur the Mask , Blur [Splinter] , Boost Smooth , Boost Chromaticity , Boost , Bokeh , Blur Alpha , Blockism , Bloc Size (%) , Blobs Editor , Blob2 , Blue Chroma Smoothness , Blue Chroma Shift , Blue Chroma Factor , Bloom , Blob Size , Blob 7 Color , Blob 7 , Blob 6 Color , Blob 6 , Blob 9 Color , Blob 9 , Blob 8 Color , Blob 8 , Blue Shift , Blue Shadows 01 , Blue Screen Mode , Blue Rotations , Blues , Blue-Green , Blue Wavelength , Blue Steel , Blue Mono , Blue Dark , Blue Color , Blue Cold Fade , Blue Chrominance , Blue Level , Blue Ice , Blue House , Blue Factor , Bottom Size , CFB-[cfb] , CFA-[cfa] , C-Line , Byers 11 , CMY[Key] , CMYK Tone , CLUT from After - Before Layers , CLUT Opacity , By Value , By Iteration , By Green Component , By Custom Expression , By Blue Component , By Red Component , By Red Chrominance , By Luminance , By Lightness , Canvas Darkness , Canvas Color , Canvas Brightness , Candle Light , Caribe , Card Suits , Car , Canvas Texture , Canal Alpha , Camera Motion Only , C[Magenta]YK , CRT Sub-Pixels , CM[Yellow]K , Camouflage , Cameraman , Camera Y , Camera X , By Blue Chrominance , Breaks , Braque: The Mandola , Braque: Little Bay at La Ciotat , Braque: Landscape near Antwerp , Bright Green 01 , Bright Green , Bright , Brighness , Box Fitting , Bottom-Right Vertex (%) , Bottom-Right , Bottom-Left Vertex (%) , Bottom-Left , Bourbon 64 , Boundary Conditions , Boundaries (%) , Bouncing Balls , Built-in Gray , Brushify , Brush Diameter , Bruit / Noise , Butterfly , Burn Strength , Burn Blur , Bump Factor , Brownish , Bright Warm , Bright Teal Orange , Bright Pixels , Bright Length , Brown Mobster , Brown BM , Bronze , Bristle Size , Cut & Normalize , Customize CLUT , Custom Transform , Custom Style (Top Layer) , Cyan Color , Cutout , Cut Low , Cut High , Custom Style (Bottom Layer) , Custom Dictionary , Custom Depth Maps Stream , Custom Depth Correction , Custom D-Y-[vy] , Custom Layers , Custom Filter Code , Custom E-Y-[vy] , Custom E-X-[vx] , DCP Dehaze , DCCI2x , D and O 1 , Déformation 2 , Dark Boost , Dark Blues in Sunlight , Dark , Damping per Octave , Déformation 1 , Cycle Layers , Cyan Smoothness , Cyan Shift , Cyan Factor , Déformation , Décalage Ombre Y / Shadow Offset Y , Décalage Ombre X / Shadow Offset X , Cylinder , Custom D-X-[vx] , Cubic Unearthing , Cube (256) , Crystal Background , Crystal , Cubism on Color Abstraction , Cubism , Cubicle 99 , Cubic-Diamond Chaos , Crushin , Cross-Hatch Amount , Cross Process CP 6 , Cross Process CP 4 , Cross Process CP 3 , Crosshair , Crosses 2 , Crosses 1 , Crossed , Custom C-X-[vx] , Custom B-Y-[vy] , Custom B-X-[vx] , Custom A-Y-[vy] , Custom Correction Map , Custom Code [Local] , Custom Code [Global] , Custom C-Y-[vy] , Custom A-X-[vx] , Curve Length , Curve Angle , Curve Amount , Cupid , Curves Previously Defined , Curves , Curved Stroke , Curved , Dark Green 02 , Depth Map Construction , Depth Map , Depth Fade Out Frames , Depth Fade In Frames , Depth-Of-Field Type , Depth Maps Only , Depth Map Reconstruction , Depth Map Only , Dense , Denim [bruit/noise] , Denim Texture , Delicatessen , Delaunay: Windows Open Simultaneously , Denoise Smooth Alt , Denoise Smooth , Denoise Simple 40 , Denoise , Detail Reconstruction Strength , Detail Reconstruction Smoothness , Detail Reconstruction Detection , Detail Level , Details (%) , Detail Strength , Detail Scale , Detail Reconstruction Style , Destination Y-Tiles , Descent Method , Desaturate Norm , Desaturate (%) , Deriche , Destination X-Tiles , Destination (%) , Desert Gold 37 , Descreen , Delaunay: Portrait De Metzinger , Day4Nite , Day for Night , David , Date 39 , Decompose Channels , Decompose , Decagon , De-Anaglyph , Dark Sky , Dark Motive , Dark Man X , Dark Length , Dark Green 1 , Dark Screen , Dark Place 01 , Dark Pixels , Dark Orange Teal , Defects Size , Defects Density , Defects Contrast , Default (Circle) , Deinterlace2x , Deinterlace , Deform , Defects Smoothness , Deep Warm Fade , Deep Dark Warm , Deep Blue , Deep , Decoration , Deep Teal Fade , Deep Skin Tones 3 , Deep Skin Tones 2 , Deep High Contrast , Cross Process CP 18 , Colorize [with Colormap] , Colorize [Photographs] , Colorize [Interactive] , Colorize Mode , Colors Only (1 Layer) , Colors Only , Colormap Type , Colorized Image (1 Layer) , Colorize Lineart [Smart Coloring] , Colorful 0209 , Colorful , Colored on Transparent , Colored on Black , Colorize Lineart [Propagation] , Colorize Lineart [Auto-Fill] , Coloring , Colorful Blobs , Comix Colors , Comic Style , Comicbook , Column by Column , Compression Blur , Compress Highlights , Composed Layers , Components , Colours , Colour Channels , Colour , Colors to Layers , Colors to Black or White , Colour Space Mode , Colour Smoothing , Colour Model , Colour Generation Seed , Colored Regions , Color Highlights , Color Green-Magenta , Color Gamma , Color Effect Mode , Color Median , Color Mask [Interactive] , Color Mask , Color Image , Color Channel Smoothing , Color Angle , Color Abstraction Paint , Color Abstraction Opacity , Color 4 (Bottom/Right Corner) , Color Blue-Yellow , Color Blindness , Color Blending , Color Basis , Colored Geometry , Colored Edges , Colorburn , Colorbase , Colored Pencils , Colored Outline , Colored Lineart , Colored Grain , Color Variation [Random -1] , Color Presets , Color Overall Effect , Color Negative , Color Midtones , Color Spots + Lineart , Color Shadows , Color Shading (%) , Color Rendering , Compression Filter , Couleur / Color D , Couleur / Color C , Couleur / Color B , Couleur / Color A , Couleur Denim , Couleur / Color G , Couleur / Color F , Couleur / Color E , Couleur / Color , Copper , Cool / Warm , Cool (256) , Convolve , Cosinusoidal Liquid , Cos(z) , Correlated Channels , Corner Brightness , Crop (%) , Criterion , Crisp Warm , Crisp Romance , Cross Process CP 16 , Cross Process CP 15 , Cross Process CP 14 , Cross Process CP 130 , Crip Winter , Courbure Ombre / Curvature Shadow , Counter Clockwise , Couleurs B , Couleurs A , Creative Pack (33) , Crease , Cracks , Course 4 , Control Point 6 , Construction Material Texture , Constraint Radius , Constrained Sharpen , Constrain Values , Contour Detection (%) , Contour Coherence , Contour Chaos , Continuous Droste , Constrain Image Size , Conformal Maps , Conflict 01 , Cone , Computation Mode , Connectors Variability , Connectors Centering , Connect-Four , Conical Start at 0? , Control Point 1 , Contributors , Contrasty Green , Contrasty Afternoon , Control Point 5 , Control Point 4 , Control Point 3 , Control Point 2 , Contrast(%) , Contours + Flocon/Snowflake , Contour Threshold (%) , Contour Precision , Contour Normalization , Contrast with Highlights Protection , Contrast Swiss Mask , Contrast Smoothness , Contrail 35 , Blob 5 Color , 50. Activate Relief Processing , 5. Octaves , 5. Edge Threshold , 4th Tone , 54. Blending Mode , 53. Smoothness , 52. Depth (%) , 51. Angle , 4th , 45. HP Order Cube Root , 45 Deg. , 44. HP Frequency Power , 43. LP Resonance , 49. Makeup Gain , 48. Absolute , 47. Colour Space , 46. HP Resonance , 7. Blur , 6th Tone , 6th , 67.5 Deg. , 7th Tone , 7th , 7Drk21 , 7. Mode , 64px , 5th Tone , 5th , 5:4 , 55. Blending Opacity (%) , 64 Keypoints , 64 (Faster) , 6. Damping per Octave , 6. Smoothness , 42. LP Order Cube Root , 3D Image Type , 3D Image Object [Animated] , 3D Image Object , 3D Extrusion [Animated] , 3D Reflection , 3D Random Objects , 3D Metaballs , 3D Lathing , 3D Extrusion , 3D CLUT (Precise) , 3D CLUT (Fast) , 3D Blocks , 3D Angles , 3D Elevation [Animated] , 3D Elevation , 3D Conversion , 3D Colored Object , 4 Grays , 4 Colors , 3rd Y-Coord , 3rd X-Coord , 41. LP Frequency Power , 40. Create Copy? , 4. Radius , 4. Segmentation [No Alpha Channel] , 3rd Tone , 3D Tiles , 3D Text Pointcloud , 3D Starfield , 3D Rubber Object , 3rd Parameter , 3rd , 3D Waves , 3D Video Conversion , 8 Colors , Action #24 , Action #23 , Action #22 , Action #21 , Action #6 , Action #5 , Action #4 , Action #3 , Action #20 , Action #16 , Action #15 , Action #14 , Action #13 , Action #2 , Action #19 , Action #18 , Action #17 , Activate Second Direction , Activate Pink Elephants , Activate Overload Functions , Activate Mirror , Activate Slice 3 , Activate Slice 2 , Activate Slice 1 , Activate Shakes , Activate Lizards , Action Magenta 01 , Action #9 , Action #8 , Action #7 , Activate Grid? , Activate Custom Filter , Activate Color Enhancement , Action Red 01 , Action #12 , A-Color Smoothness , A-Color Shift , A-Color Factor , 9th Color , A4 / 150 PPI , A4 / 100 PPI (Recommended) , A-Value , A-Component , 9th , 8. Quadtree Pixelisation [No Alpha Channel] , 8-10. Color Balance , 8 Keypoints (RGB Corners) , 8 Grays , 9. Quadtree Min Precision , 8th Tone , 8th , 8px , Acrylic Earthing , Acros+Ye , Acros+R , Acros+G , Action #11 , Action #10 , Action #1 , Acrylica , Acros , Absolute Brightness , Abigail Gonzalez (21) , A4 / 75 PPI , A4 / 300 PPI , Achromatopsia , Achromatomaly , Accentuation Nuances / Sharpen Shades , Acceleration , 3:2 , 15. Maximum Noise , 15. Colour Space , 15. Channel 1 , 14th , 16. Channel 2 , 16 Grays , 16 Colors , 15th , 14. Value Action , 12th , 128px , 125 Keypoints , 12. Noise Type , 14. Minimum Noise , 13th , 13. Noise Type , 13. Channel(s) , 1st Additional Palette (.Gpl) , 1st , 1:1 , 19. Warp Offset , 1st Variance , 1st Tone , 1st Text , 1st Parameter , 19. Desaturation (%) , 16th , 16px , 16:10 , 16. Noise Channel(s) , 18. Warp Intensity , 18. Normalise , 17. Warp Iterations , 17. Channel 3 , 12. Quadtree Max Homogeneity , *Vivid Screen* , *Vivid Edges* , *Graphix Colors , *Dark Screen* , -1. Value Action , - NON / NO - , +90 Deg. , +180 Deg. , *Dark Edges* , × 3 , × 2 , × 1.5 , × 1.25 , *Comix Colors* , *Colors Doping* , *Colors Doping , ♥ Support Us ! ♥ , 11. Quadtree Min Homogeneity , 10th Color , 10th , 10. Quadtree Max Precision , 12 Grays , 12 Colors , 11th , 11. Amplitude , 1.85:1 , .Bmp , -4. Normalise , -3. Normalisation Channel(s) , -2. Overall Channel(s) , 1. Plasma Texture [Discards Input Image] , 1 Levels , 0. Recompute , .Png , 1st X-Coord , 3. Plasma Alpha Channel , 3 Mix , 3 Grays , 3 Colors , 31. Y-Factor , 31. Maximum Hue , 30. X-Factor , 30. Minimum Hue , 2xy-Axes , 2nd Tone , 2nd Text , 2nd Parameter , 2nd Additional Palette (.Gpl) , 2x Type , 2nd Y-Coord , 2nd X-Coord , 2nd Variance , 37. Channel(s) , 36. Hue Offset , 36. Boundary , 35. Maximum Value , 39. Activate Butterworth Bandpass Processing , 38. Value Offset , 38. Blur Original , 37. Saturation Offset , 35. Interpolation , 33. Maximum Saturation , 32px , 32. X-Offset , 32. Minimum Saturation , 343 Keypoints , 34. Y-Offset , 34. Minimum Value , 34. Correlated Channels , 2nd , 22. Correlated Channels , 21:9 , 216 Keypoints , 21. Self-Blending , 23. Self-Blending V. Original Blending , 23. Boundary , 22.5 Deg. , 22. Self-Blending Opacity (%) , 21. Scale to Height , 2 Noise , 2 Grays , 2 Colors , 1st Y-Coord , 20. Scale to Width , 2.35:1 , 2. Plasma Scale , 2-Strip Process , 29. Negate? , 28. Hue Offset , 28. Equalize? , 27. Number #2 , 2XY-Axes , 2XY Mirror , 2:1 , 29. Normalise , 27. Gamma Offset , 25. Value Action , 25. Random Negation , 24. Warp Channel(s) , 24. Self-Blend V. Original Opacity (%) , 27 Keypoints , 26. Random Negation Channel(s) , 26. Number #1 , 256px , Balloons , Ball , Balance(%) , Balance SRGB , Barbara , Bandpass , Banding Denoise , Balls , Background Point (%) , BC Darkum , B-Component , B-Color Smoothness , B-Color Shift , Background Intensity , Background (%) , BW but Yellow , BG Textured , Beach Faded Analog , Beach Aqua Orange , Bayer Reconstruction , Bayer Filter , Berlin Sky , Berat (10) , Below , Behind , Bayer , Bars , Barnsley Fern , Barbouillage Paint Daub , Barbed Wire , Batch Processing , Basic Adjustments , Base Thickness (%) , Base Reference Dimension , B-Color Factor , Average 5x5 , Average 3x3 , Avalanche , Ava 614 , Average RGB , Average Color , Average 9x9 , Average 7x7 , Autumn , Autocrop Output Layers , Auto-Threshold , Auto-Set Periodicity , Auto-Reduce Number of Frames , Automatic [Scan All Hues] , Automatic Upscale for Optimum Results , Automatic Color Balance , Automatic & Contrast Mask , B&W Pencil [Animated] , B&W , Azrael 93 , Azimuth , B-Boyz 2 , B&W Stencil [Animated] , B&W Stencil , B&W Photograph , Axis , Avg Branching , Avg / Max Weight , Avg , Average Smoothness , Avg Thickness Factor (%) , Avg Right Angle (deg.) , Avg Length Factor (%) , Avg Left Angle (deg.) , Best Match , Blend [Fade] , Blend [Edges] , Blend [Average All] , Blend Threshold , Blending Mode , Blend [Standard] , Blend [Seamless] , Blend [Median] , Blend Scales , Bleech Bypass Green , Bleach Bypass 4 , Bleach Bypass 3 , Bleach Bypass 2 , Blend Decay , Blend All Layers , Blend , Bleech Bypass Yellow 01 , Blob 3 , Blob 2 Color , Blob 12 Color , Blob 12 , Blob 5 , Blob 4 Color , Blob 4 , Blob 3 Color , Blob 11 Color , Blob 1 , Blindness Type , Blending Size , Blending Opacity (%) , Blob 11 , Blob 10 Color , Blob 10 , Blob 1 Color , Bleach Bypass 1 , Black & White 03 , Black & White 02 , Black & White 01 , Black & White (25) , Black & White-1 , Black & White 06 , Black & White 05 , Black & White 04 , Bit Masking (Start) , Bidirectional [Smooth] , Bidirectional [Sharp] , Bias , Bi-Directional , Bit Masking (End) , Binary Digits , Binary , Bilateral Radius , Black Star , Black Level , Black Dices , Black Crayon Graffiti , Bleach Bypass , Blade Runner , Black to White , Black on Transparent , Black & White-9 , Black & White-4 , Black & White-3 , Black & White-2 , Black & White-10 , Black & White-8 , Black & White-7 , Black & White-6 , Black & White-5 , Auto-Clean Bottom Color Layer , Alternating Chaos 2 , Alternating Chaos 1 [Legacy] , Alternating Chaos 1 , Alternating Chaos 0 , Alternating Chaos 4 , Alternating Chaos 3 [Legacy] , Alternating Chaos 3 , Alternating Chaos 2 [Legacy] , Also Match Gradients , All Round , All Layers and Masks , All 90° Rotations , All 45° Rotations , Alpha Mode , Allow Self Intersections , All but Reference Color , All XY-Flips , Amstragram+ , Amstragram , Amplitude / Angle , Amount (%) , Analog Film 1 , Anaglyph: Red/Cyan , Anaglyph Reconstruction , Anaglypgh Green/magenta Optimized , Ambient Lightness , Alternating Custom Formula Level 1 , Alternating Chaos 5 [Legacy] , Alternating Chaos 5 , Alternating Chaos 4 [Legacy] , Ambient (%) , Alternative Custom Formula Level 3 , Alternating Custom Formula Level 4 , Alternating Custom Formula Level 2 , Alignment Type , Add Image Label , Add Grain , Add Comment Area in HTML Page , Add Colors , Additional Outline , Additional Duplicates Count , Add as a New Layer , Add User-Defined Constraints (Interactive) , Add Color Background , Adapt Luminance , Activer Symmetrizoscope , Activer Couleurs Formes , Activate Slice 4 , Add Chalk Highlights , Add Alpha Channels to Detail Scale Layers , Add 1px Outline , Adaptive , Alien Green , Algorithm , Alex Jordan (81) , Aggressive Highlights Recovery 5 , Aligned , Align Layers , Align Image Streams , Alien Rasta , Aggresive , Agfa APX 100 , Adventure 1453 , Adjust Background Reconstruction , Additive , Agfa Vista 200 , Agfa Ultra Color 100 , Agfa Precisa 100 , Agfa APX 25 , AnalogFX - Anno 1870 Color , Array [Regular] , Array [Random] , Array [Random Colors] , Array [Mirrored] , Artistic Hard , Artistic Modern , Arrows (Outline) , Arrows , Array [Faded] , Arabica 12 , Aqua and Orange Dark , Aqua , Apply Transformation From , Areas Smoothness , Areas Light Adjustment , Area Smoothness , Arctangent , Aurora , Atomic Pink , Asymphological Vibrato , Asymphological Basic 2 , Auto Set Hue Inverse (Hue Slider Is Disabled) , Auto Reduce Level (Level Slider Is Disabled) , Auto Crop , Australia , Asymphological Basic , Aspect , Ascii Art , Ascii , Artistic Round , Asymphochaos , Astia , Associated Color , Asplenium Adiantum-Nigrum , Apply Skin Tone Mask , Angle Décalage Des Couleurs A / Offset , Angle / Size , Angle (deg.) , Angle (deg) , Angle Edge Behaviour , Angle Dispersion , Angle Décalage Image Contour , Angle Décalage Des Couleurs B / Offset , Angle (%) , AnalogFX - Sepia Color , AnalogFX - Old Style III , AnalogFX - Old Style II , AnalogFX - Old Style I , Analysis Smoothness , Analysis Scale , AnalogFX - Soft Sepia II , AnalogFX - Soft Sepia I , Apply Adjustments On , Apples , Apocalypse This Very Moment , Antisymmetry , Apply Relief? , Apply Mask , Apply External CLUT , Apply Color Balance , Annular Steiner Chain Round Tile , Angoisse Anguish , Angle of Main Nebulous Surface , Angle of Disturbance Surface , Angle Range (deg.) , Anisotropy (%) , Anime , Angular Tiles , Angular Step (°) , K-2 , K-1 , K Variable , K Mode , KH 10 , KH 1 , K-Tone Vintage Kodachrome , K-Factor , Just Peachy , JPEG Smooth , JPEG Artefacts , J.T. Semple (14) , J. Wick 21 , Julia , Jet (256) , Jawbreaker , Japanese Maple Leaf , Kandinsky: Squares with Concentric Circles , Kaleidoscope [Symmetry] , Kaleidoscope [Reptorian-Polar] , Kaleidoscope [Polar] , Keep Base Layer as Input Background , Keep Aspect Ratio , Keep , Kandinsky: Yellow-Red-Blue , Kaleidoscope [Blended] , KH 5 , KH 4 , KH 3 , KH 2 , KH 9 , KH 8 , KH 7 , KH 6 , Iuwt , Instant [Consumer] (54) , Inside-Out , Inside Color , Insert New CLUT Layer , Intensity of Purple Fringe , Intarsia , Instant-C , Instant [Pro] (68) , Input Transparency , Inpaint [Transport-Diffusion] , Inpaint [Patch-Based] , Inpaint [Multi-Scale] , Inpaint [Morphological] , Input Layers , Input Guide Color , Input Frame Files Name , Input Folder , Invert Luminance , Invert Image Colors , Invert Embossing? , Invert Canvas Colors , Iteration , Isophotes , Inward , Invert Mask , Invert Blur , Inverse Radius , Inverse Depth Map , Interpolation Type , Interp , Invert Background / Foreground , Inversions , Inversion Couleurs / Invert Colors , Inverse Transform , Keep Borders Square , Kodak Portra 160 + , Kodak Portra 160 , Kodak Kodachrome 64 , Kodak Kodachrome 25 , Kodak Portra 160 NC ++ , Kodak Portra 160 NC + , Kodak Portra 160 - , Kodak Portra 160 ++ , Kodak Kodachrome 200 , Kodak Elite Chrome 400 , Kodak Elite Chrome 200 , Kodak Elite 100 XPRO , Kodak Ektar 100 , Kodak HIE (HS Infra) , Kodak Elite ExtraColor 100 , Kodak Elite Color 400 , Kodak Elite Color 200 , Kodak Portra 400 UC , Kodak Portra 400 NC - , Kodak Portra 400 NC ++ , Kodak Portra 400 NC + , Kodak Portra 400 VC , Kodak Portra 400 UC - , Kodak Portra 400 UC ++ , Kodak Portra 400 UC + , Kodak Portra 400 NC , Kodak Portra 160 VC - , Kodak Portra 160 VC ++ , Kodak Portra 160 VC + , Kodak Portra 160 NC - , Kodak Portra 400 - , Kodak Portra 400 ++ , Kodak Portra 400 + , Kodak Portra 400 , Kodak Ektachrome 100 VS , Key Factor , Kernel Type , Kernel Multiplier , Keftales , Keypoint Influence (%) , Key Smoothness , Key Shift , Key Frame Rate , Keep Transparency in Output , Keep Detail Layer Separate , Keep Detail , Keep Colors , Keep Color Channels , Keep Tiles Square , Keep Original Layer , Keep Original Image Size , Keep Layers Separate , Kodak 2393 (Constlclip) , Kodak 2383 (Cuspclip) , Kodak 2383 (Constlmap) , Kodak 2383 (Constlclip) , Kodak E-100 GX Ektachrome 100 , Kodak BW 400 CN , Kodak 2393 (Cuspclip) , Kodak 2393 (Constlmap) , Kodak 1-8 , Klee: In the Style of Kairouan , Klee: Death and Fire , Kitaoka Spin Illusion , Killstreak , Klimt: The Kiss , Klee: Red Waistcoat , Klee: Polyphony 2 , Klee: Oriental Pleasure Garden Anagoria , Inpaint [Holes] , Highlights Protection , Highlights Lightness , Highlights Hue , Highlights Crossover Point , Hilutite , Highres CLUT , Highlights Zone , Highlights Selection , Highlights Color Intensity , Higher Mask Threshold (%) , High Value , High Speed , High Scale , Highlights Brightness , Highlights Abstraction , Highlight Bloom , Highlight (%) , Horizontal Array , Horizon Leveling (deg) , Horisontal Length , Hope Poster , Horizontal Tiles , Horizontal Stripes , Horizontal Length , Horizontal Blur , Hong Kong , Hitman , Histogram Transfer , Histogram Analysis , Histogram , Honey Light , Homogeneity , Holes Probability (Type-5) (%) , Hokusai: The Great Wave , High Quality , Halftone Shapes , Halftone , Half Image-Diagonal(%) , Half Image-Diagonal (%) , Hard , Happyness 133 , Hanoi Tower , Hallowen Dark , HaldCLUT Filename , HSV Select , HSV (256) , HSL [all] , HSL Adjustment , HaldCLUT , Hair Locks , Hackmanite , HSV [all] , Hexagonal , Heulandite , Herderite , Helios , High Key , High Frequency Layer , High Frequency , Hiddenite , Hedcut (Experimental) , Harsh Day , Hard Teal Orange , Hard Sketch , Hard Dark , Heavy (Faster) , Heavy , Hearts (Outline) , Harsh Sunset , Horizontal Warp Only , Impulses 9x9 , Impulses 7x7 , Impulses 5x5 , Import RGB-565 File , IncreaseChroma1 , Include Opacity Layer , Inch , InAvision (15) , Import Data , Image + Colors (2 Layers) , Image + Background , Illustration Look , Illumination , Image to Grab Color from (.Png) , Image Weight , Image Contour Dimension , Image + Colors (Multi-Layers) , Initialization , Initial Density , Init. With High Gradients Only , Init. Type , Inner Length , Inner Fading , Inner , Ink Wash , Init. Resolution , Inflation 2 , Inflation , Industrial 33 , Indoor Blue , Init Canvas , Infrared - Dust Pink , Information , Influence of Color Samples (%) , Illuminate 2D Shape , Hue Range , Hue Randomness , Hue Min (%) , Hue Max (%) , Hydracore , Hybrid Median - Medium Speed Softest Output , Human 2 , Hue Smoothness , Hue Lighten-Darken , Hough Transform , Hough Sketch , Hot (256) , Horror Blue , Hue Factor , Howlite , Householder , House , Ilford FP4 Plus 125 , Ilford Delta 400 , Ilford Delta 3200 , Ilford Delta 100 , Ilford XP2 , Ilford Pan F Plus 50 , Ilford HPS 800 , Ilford HP5 Plus 400 , Ignore Current Aspect , Hypnosis , Hypersthene , Hyper Droste , Hyla 68 , Identity , Iain Noise Reduction 2019 , Hypressen , Hypotrochoid , Lowlights Crossover Point , Lowercase Letters , Lower Side Orientation , Lower Mask Threshold (%) , Luminance Level , Luma Noise , Lucky 64 , Lowres CLUT , Lower Layer Is the Bottom Layer for All Blends , Low Frequency Layer , Low Contrast Blue , Low Bias , Louetta , Low Value , Low Scale , Low Key 01 , Low Key , Magenta Coffee , MIxer , Mélanges Rayons / Blend Rays , Lutify.Me (7) , Magenta Dream , Magenta Day 01 , Magenta Day , Magenta Color , Lush Green Summer , Luminance Shift , Luminance Only (YCbCr) , Luminance Only (Lab) , Luminance Only , Luminosity from Color , Luminosity Type , Luminosity Increase , Luminance Smoothness , Loop Method , Local Contrast Enhancement , Local Contrast Enhance , Local Contrast Effect , Local Normalisation , Local Processing , Local Orientation , Local Normalization , Local Contrast Style , Lissajous [Animated] , Linify , Linf-Norm , Lines Antialias , Lines (256) , Lissajous Spiral , Lissajous , Liquid Parabolic , Lion , London Nights , Lomography X-Pro Slide 200 , Lomography Redscale 100 , Logarithmic Distortion Y-Axis Direction , Loop Limitation , Lookup Factor , Lookup , Long , Logarithmic Distortion X-Axis Direction , Lock Uniform Sampling , Lock Return Scaling to Source Layer , Local Variance Normalization , Local Similarity Mask , Logarithmic Distortion Axis Combination for Y-Axis , Logarithmic Distortion Axis Combination for X-Axis , Logarithmic Distortion , Log(z) , Magenta Factor , Maximal Area , MaxRGB , Max-T , Max Radius , Maximal Value , Maximal Seams per Iteration (%) , Maximal Highlights , Maximal Color Saturation , Max Offset (%) , Max Area , Max Angle Deviation (deg) , Max Angle , Matrix , Max Length (%) , Max Iterations , Max Cut (%) , Max Curve , Median (beware: Memory-Consuming!) , Mean Curvature , Mean Color , McKinnon 75 , Medium Details Threshold , Medium Details Smoothness , Medium 3 , Median Radius , Maze , Maximum Number of Output Layers , Maximum Number of Image Colors , Maximum Image Size , Maximum , Maximum Value , Maximum Size Factor , Maximum Saturation , Maximum Red:Blue Ratio in the Fringe , Math Symbols , Mandelbrot , Make Up , Make Squiggly , Make Seamless [Patch-Based] , Manual Controls , Mandrill , Mandelbrot Explorer , Mandelbrot - Julia Sets , Make Seamless [Diffusion] , Magenta-Yellow , Magenta Yellow , Magenta Smoothness , Magenta Shift , Make Hue Depends on Region Size , Mail , Magnitude / Phase , Magic Details , Mask Type , Mask Smoothness (%) , Mask Size , Mask Creator , Matching Precision (Smaller Is Faster) , Match Colors With , MasterOpacity , Mask as Bottom Layer , Mask Contrast , Margin (%) , Marble , Mapping , Map , Mask By , Mask + Background , Masculine , Mascot Image , Lineart + Extrapolated Colors , Lanczsos , Lab8 , Lab [all] , Lab (Mixed) , Landscape 04 , Landscape 03 , Landscape 02 , Landscape 01 , Lab (Luma/Chroma) , LN Amplitude , LN Amplititude , LMS Adjustment , LAB8 , Lab (Luma Only) , Lab (Distinct) , Lab (Chroma Only) , LUTs Pack , Last , Large Noise , Landscape-9 , Landscape-8 , Lava , Late Sunset , Late Afternoon Wanderlust , Last Frame , Landscape-7 , Landscape-2 , Landscape-10 , Landscape-1 , Landscape 05 , Landscape-6 , Landscape-5 , Landscape-4 , Landscape-3 , LAB-Lightness , Kodak T-MAX 3200 - , Kodak T-MAX 3200 ++ , Kodak T-MAX 3200 + , Kodak T-MAX 3200 (alt) , Kodak TMAX 3200 , Kodak T-Max 400 , Kodak T-Max 3200 , Kodak T-Max 100 , Kodak T-MAX 3200 , Kodak Portra 800 , Kodak Portra 400 VC - , Kodak Portra 400 VC ++ , Kodak Portra 400 VC + , Kodak Portra 800 HC , Kodak Portra 800 - , Kodak Portra 800 ++ , Kodak Portra 800 + , L1-Norm , Kyler Holland (10) , Kuwahara on Painting , Korben 214 , LAB-B , LAB-A , LAB , L2-Norm , Kookaburra , Kodak TRI-X 400 (alt) , Kodak TRI-X 400 , Kodak TRI-X 1600 , Kodak TMAX 400 , Kodak Tri-X 400 , Kodak TRI-X 400 - , Kodak TRI-X 400 ++ , Kodak TRI-X 400 + , Lava Lamp , Light-X , Light Type , Light Strength , Light Smoothness , Lighting , Lighten Edges , Light-Z , Light-Y , Light Rays , Light Effect , Light Direction , Light Antialias , Light Angle , Light Position , Light Patch , Light Leaks , Light Glow , Line Strength , Line Precision , Line Opacity , Limit Hue Range , Lineart + Colors , Lineart + Color Spots , Lineart , Line Thickness , Lighty Smooth , Lightness Max (%) , Lightness Factor , Lightness (%) , Lighting Angle , Lightning , Lightness Smoothness , Lightness Shift , Lightness Min (%) , Light (blown) , Left Side Orientation , Left Position , Left Foreground , Left / Right Blur (%) , Lena , Left and Right Image Streams , Left Stream Only , Left Slope , Left , Lch [all] , Layers to Tiles , Layer Processing , Layer , Leak Type , Leaf Opacity (%) , Leaf Color , Leaf , Lifestyle & Commercial-5 , Lifestyle & Commercial-4 , Lifestyle & Commercial-3 , Lifestyle & Commercial-2 , Lifestyle & Commercial-9 , Lifestyle & Commercial-8 , Lifestyle & Commercial-7 , Lifestyle & Commercial-6 , Lifestyle & Commercial-10 , Lenticular Orientation , Lenticular Density LPI , Lenox 340 , Leno , Lifestyle & Commercial-1 , Life Giving Tree , Level Frequency , Lenticular Print , HSI [all] , External Transparency , Extend 1px , Expression , Exposure , Extrapolate Color Spots on Transparent Top Layer , Extract Objects , Extract Foreground [Interactive] , Extra Smooth , Export RGB-565 File , Expired (polaroid) , Expired (fade) , Expanding Mirrors , Expand Size , Exponents , Exponent (Real) , Exponent (Imaginary) , Exponent , Faded (alt) , Faded , Fade to Green , Fade Start (%) , Faded 47 , Faded (vivid) , Faded (extreme) , Faded (analog) , Fade Layers , F(X) , Extreme , Extrapolated Colors + Lineart , Extrapolate Colors As , Fade End (%) , Fade , Fabric Chaos , FFT Preview , Expand Shadows , Ending Y-Centering , Ending X-Centering , Ending Scale (%) , Ending Angle , Equalization (%) , Equalization , Enhance Detail , Engrave , End of Mid-Tones , Enchanted , Enable Segmentation , Enable Paintstroke , Enable Morphology , End Point Rate (%) , End Point Connectivity , End Frame Number , End Color , Eterna for Flog , Etch Tones , Escape Value , Erosion / Dilation , Expand Background Reconstruction , Exp(z) , Exp , Euclidean - Polar , Eric Ellerbrock (14) , Equalize Shadow , Equalize Local Histograms , Equalize HSV , Equalize HSI-HSL-HSV , Equirectangular to Nadir-Zenith , Equation Plot [Y=f(X)] , Equation Plot [Parametric] , Equalize at Each Step , Faded Green , Fine Noise , Fine Details Threshold , Fine Details Smoothness , Fine 2 , Fire Effect , Finger Size , Finger Paint , Fine to Coarse , Final Image , Film Print 02 , Film Print 01 , Film Highlight Contrast , Film GB-19 , Final Flattening (bilateral) , FilterGrade Cinematic (8) , Filter Design , Filmic , Flat 30 , Flag (256) , Five Layers , Fitting Function , Flatness , Flat Regions Removal , Flat Color , Flat Blue Moon , Fit Radial End to Min/Max Dimension , First Frame , First Color , First , Fireworks , Fish-Eye Effect , Fish-Eye , First Size , First Radius , Film 9879 , Fast Recovery , Fast Blend Preview , Fast Blend , Fast (Low Precision) Preview , Felt Spots , Felt Pen , Feathering , Faux Infrared , Fast (Approx.) , Faded Retro 02 , Faded Retro 01 , Faded Pink-Ish , Faded Look , Fast , Fall Colors , Fading Shape , Fading , Fill Transparent Holes , Fill Holes % , Fill Holes , Fidelity to Target (Finest) , Film 0987 , Filling Opacity (%) , Filled Circles , Filled , Fidelity to Target (Coarsest) , Fibers Smoothness , Fibers Amplitude , Fibers , Ferrofluid , Fidelity Smoothness (Finest) , Fidelity Smoothness (Coarsest) , Fidelity Chromaticity , Fibrousness , Enable Interpolated Motion , Distance to Center (%) , Distance Transform , Distance (Fast) , Display Coordinates on Preview Window , Distortion Surface Angle , Distortion Factor , Distortion Angle , Distort Lens , Display Coordinates , Discard Contour Guides , Disabled , Dirty , Directions 23 , Display Color Axes , Display Blob Controls , Disco , Discard Transparency , Dodge Strength , Dodge Blur , DoNothing , DoNotMergeLayers , Doodle , Domingo 145 , Dog , Dodge and Burn , Do Not Flatten Transparency , Disturbance Scale-By-Factor , Distortion Y-[dy] , Distortion X-[dx] , Distortion Surface Position , Django 25 , Dither Output , Disturbance Y , Disturbance X , Direction , Dices with Colored Sides , Dices with Colored Numbers , Dices , Diamonds (Outline) , Diff. of Median , Diff. of Gauss. , Diff. of BoxBlur , Dif , Diamonds , Details Strength (%) , Details Smoothness , Details Equalizer , Details Amount , Diamond (Inv.) , Deuteranopia , Deuteranomaly , Detect Skin , Dimension (%) , Dimension , Dilation / Erosion , Dilate Contours , Direct , Dipole: 1/(4*z^2-1) , Dimension [Diff] , Dimension Motif Base , Dilatation Motif / Pattern , Diffuse Shadow , Diffuse (%) , Difference of Gaussians , Difference Mixing , Dilatation , Digits , Diffusivity , Diffusion Tensors , Dot Size , Edges on Fire , Edges [Animated] , Edges Offsets , Edges (%) , Edgy Ember , Edges-2 (beware: Memory-Consuming!) , Edges-1 (beware: Memory-Consuming!) , Edges-0.5 (beware: Memory-Consuming!) , Edge Smoothness , Edge Influence , Edge Fidelity , Edge Exponent , Edge Detect Includes Chroma , Edge Simplicity , Edge Shade , Edge Method , Edge Mask , Ellipsoid , Ellipsionism Opacity , Ellipsionism , Ellipse Ratio , Enable Extreme Emboss or Relief? , Enable CFA/CFB* Formulas for OVX and OVY Formulas? , Enable Antialiasing , Emboss-Relief , Ellipse Painting , Elegance 38 , Eight Layers , Effect Y-Axis Scaling , Effect X-Axis Scaling , Ellipse , Elevation (%) , Elevation , Elephant , Edge Desaturation Method , Drop Blues , Dreamy , Dream Smoothing , Dream 85 , Drop Water , Drop Shadow 3D , Drop Shadow , Drop Green Tint 14 , Dream 1 , Download External Data , Douceur Ombre / Smoothness Shadow , Douceur / Smoothness , Double Pixel Axis? , Dream , Drawn Montage , Dragonfly , Dragon Curve , Echo Hall 2 , Echo Hall , Easy Skin Retouch , Earthing , Edge Attenuation , Edge Antialiasing , Echo Wide , Echo Squircle , Earth Tone Boost , Duplicates , DuoTone Blue Red , Duck , Droste , Earth , Eagle , Dusty , Duration , Gold , Going for a Walk , Gmicky - Roddy , Gmicky (by Mahvin) , GoldFX - Perfect Sunset 01min , GoldFX - Hot Summer Heat , GoldFX - Bright Summer Heat , GoldFX - Bright Spring Breeze , Gmicky (by Deevad) , Glow , Global Mapping , Global , Glamour Glow , Gmicky (Mahvin) , Gmicky (Deevad) , Gmicky & Wilber (by Mahvin) , Gmicky & Wilber , Golden Time , Golden Sony 37 , Golden Night Softner 43 , Golden Gate , GradienNormSmoothness , GradienNormLinearity , Got It! , Good Morning , Golden (vibrant) , GoldFX - Summer Heat , GoldFX - Spring Breeze , GoldFX - Perfect Sunset 10min , GoldFX - Perfect Sunset 05min , Golden (mono) , Golden (fade) , Golden (bright) , Golden , Ghost , Full Side by Uncompressed , Full Layer Stack -Slow!- , Full Colors , Full (Slower) , Futuristic Bleak 2 , Futuristic Bleak 1 , Fusion 88 , Function Angle , Fuji XTrans III (15) , Fuji Superia 800 - , Fuji Superia 800 ++ , Fuji Superia 800 + , Fuji Superia 800 , Fuji Velvia 50 , Fuji Superia X-Tra 800 , Fuji Superia Reala 100 , Fuji Superia HG 1600 , Generic Kodachrome 64 , Generic Fuji Velvia 100 , Generic Fuji Provia 100 , Generic Fuji Astia 100 , Geometry , Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Generic Skin Structure , Generic Kodak Ektachrome 100 VS , Generate Random-Colors Layer , G/M Smoothness , Fuzzy , Futuristic Bleak 4 , Futuristic Bleak 3 , Gear , Gamma Equalizer , Gamma Balance , Games & Demos , Gradient , Greenish Fade 1 , Greenish Fade , Greenish Contrasty , Green-Red , Grid Divisions , Greyscale , Grey , Gremerta , Green-Blue , Green Rotations , Green Mono , Green Light , Green Level , Green and Orange , Green Yellow , Green Wavelength , Green Shift , Gummy , Gum Leaf , Guided Light Rays , Guide Recovery , HLG 1 , HDR Effect (Tone Map) , H Variable , H Cutoff , Guide Mix , Grid [Hexagonal] , Grid [Cartesian] , Grid Width , Grid Smoothing , Guide As , Grow Alpha , Gritty , Grid [Triangular] , Green Indoor , Grain (Shadows) , Grain (Midtones) , Grain (Highlights) , Gradient [from Line] , Grain Type , Grain Tone Fading , Grain Scale , Grain Only , Gradient [Random] , Gradient Values , Gradient RGB , Gradient Preset , Gradient Norm , Gradient [Radial] , Gradient [Linear] , Gradient [Custom Shape] , Gradient [Corners] , Green Conflict , Green Color , Green Blues , Green Afternoon , Green G09 , Green Factor , Green Day 02 , Green Day 01 , Green Action , Graphic Novel , Graphic Boost , Granularity , Grainext , Green 2025 , Green 15 , Greece , Graphix Colors , Fuji Superia 400 - , Frame [Painting] , Frame [Mirror] , Frame [Fuzzy] , Frame [Cube] , Frame [Smooth] , Frame [Round] , Frame [Regular] , Frame [Pattern] , Frame [Blur] , Frame Files Format , Frame Color , Frame (px) , Fragment Blur , Frame Width , Frame Type , Frame Skip , Frame Format , Fruits , Frosted Beach Picnic , Frosted , From Reference Color , Fuji 160C - , Fuji 160C ++ , Fuji 160C + , Fuji 160C , From Input , Freaky Details , Freaky B&W , Frames Offset , Frame as a New Layer , Friends Hall of Fame , Freqy Pattern , Frequency Range , French Comedy , Fractalize , Fly Karateka , Flower Cushion , Flou / Blur Contours , Flou / Blur , Font Colors , Folger 50 , Folder Name , Foggy Night , Flocon / Snowflake , Flip Angle Direction? , Flip & Rotate Blocs , Flavin , Flattening for Edge (bilateral) , Flip Tolerance , Flip Radial Direction? , Flip Left/Right , Flip Cross-Hatch , Fourier Watermark , Fourier Transform , Fourier Filtering , Fourier Analysis , Fractal Whirl , Fractal Set , Fractal Points , Fractal Mapping , Four Layers , Force Tiles to Have Same Size , Force Re-Download from Scratch , Force Gray , Font Height (px) , Formula B , Forme , Foreground Color , Force Transparency , Fuji 3510 (Constlclip) , Fuji Ilford HP5 - , Fuji Ilford HP5 ++ , Fuji Ilford HP5 + , Fuji Ilford HP5 , Fuji Neopan Acros 100 , Fuji Neopan 1600 - , Fuji Neopan 1600 ++ , Fuji Neopan 1600 + , Fuji Ilford Delta 3200 - , Fuji FP-3000b Negative Early , Fuji FP-3000b Negative +++ , Fuji FP-3000b Negative ++ , Fuji FP-3000b Negative + , Fuji Ilford Delta 3200 ++ , Fuji Ilford Delta 3200 + , Fuji Ilford Delta 3200 , Fuji HDR , Fuji Superia 200 , Fuji Superia 1600 - , Fuji Superia 1600 ++ , Fuji Superia 1600 + , Fuji Superia 400 ++ , Fuji Superia 400 + , Fuji Superia 400 , Fuji Superia 200 XPRO , Fuji Superia 1600 , Fuji Sensia 100 , Fuji Provia 400X , Fuji Provia 400F , Fuji Provia 100F , Fuji Superia 100 - , Fuji Superia 100 ++ , Fuji Superia 100 + , Fuji Superia 100 , Fuji FP-3000b Negative , Fuji 800Z - , Fuji 800Z ++ , Fuji 800Z + , Fuji 800Z , Fuji FP-100c (alt) , Fuji FP-100c , Fuji FP 100C , Fuji Astia 100F , Fuji 400H - , Fuji 3513 (Constlmap) , Fuji 3513 (Constlclip) , Fuji 3510 (Cuspclip) , Fuji 3510 (Constlmap) , Fuji 400H ++ , Fuji 400H + , Fuji 400H , Fuji 3513 (Cuspclip) , Fuji FP-3000b , Fuji FP-100c Negative ++a , Fuji FP-100c Negative +++ , Fuji FP-100c Negative ++ , Fuji FP-3000b HC , Fuji FP-3000b +++ , Fuji FP-3000b ++ , Fuji FP-3000b + , Fuji FP-100c Negative + , Fuji FP-100c ++a , Fuji FP-100c +++ , Fuji FP-100c ++ , Fuji FP-100c + , Fuji FP-100c Negative , Fuji FP-100c Cool ++ , Fuji FP-100c Cool + , Fuji FP-100c Cool , ================================================ FILE: translations/filters/gmic_qt_it.csv ================================================ Arrays & Tiles , Array e piastrelle Artistic , Artistico Black & White , Bianco e nero Colors , Colori Contours , Contorni Deformations , Deformazioni Degradations , Degradazioni Details , Dettagli Testing , Test Frames , Cornici Frequencies , Frequenze Layers , Strati Lights & Shadows , Luci e ombre Patterns , Modelli Rendering , Rendering Repair , Riparazione Sequences , Sequenze Silhouettes , Silhouette Icons , Icone Misc , Varie Nature , Natura Others , Altri Stereoscopic 3D , 3D stereoscopico ♥ Support Us ! ♥ , ♥ Sostienici! ♥ *Colors Doping , *Colori Doping *Colors Doping* , *Colori Doping* *Comix Colors* , *Comix Colori* *Dark Edges* , *Bordi scuri *Dark Screen* , *Schermo oscuro* *Graphix Colors , *Colori Graphix *Vivid Edges* , *Bordi vivi *Vivid Screen* , *Schermo vivido* +180 Deg. , +180 gradi. +90 Deg. , +90 gradi. -1. Value Action , -1. Valore Azione -2. Overall Channel(s) , -2. Canale(i) complessivo(i) -3. Normalisation Channel(s) , -3. Canale(i) di normalizzazione -4. Normalise , -4. Normalizzare -90 Deg. , -90 gradi. 0. Recompute , 0. Ricalcolare 1 Levels , 1 Livelli 1. Plasma Texture [Discards Input Image] , 1. 2. Texture del plasma [Scarta l'immagine in ingresso]. 10. Quadtree Max Precision , 10. 11. Quadrilatero di massima precisione 10th , 10 10th Color , 10° Colore 11. Quadtree Min Homogeneity , 11. 12. Omogeneità minima dei quadrupedi 11th , 11 12 Colors , 12 colori 12 Grays , 12 Grigi 12. Quadtree Max Homogeneity , 12. 12. Omogeneità massima del quadrupede 125 Keypoints , 125 punti chiave 12th , 12 13. Noise Type , 13. 13. Tipo di rumore 13th , XIII 14. Minimum Noise , 14. 14. Rumore minimo 14th , 14 15. Maximum Noise , 15. 15. Rumore massimo 15th , 15 16 Colors , 16 colori 16 Grays , 16 Grigi 16. Noise Channel(s) , 16. 17. Canale(i) del rumore 16th , 16°. 17. Warp Iterations , 17. Iterazioni d'ordito 18. Warp Intensity , 18. 18. Intensità di curvatura 180 Deg. , 180 gradi. 19. Warp Offset , 19. Offset di ordito 1st , 1º 1st Additional Palette (.Gpl) , 1° Paletta aggiuntiva (.Gpl) 1st Color , 1° Colore 1st Parameter , 1° parametro 1st Text , 1° Testo 1st Tone , 1° Tono 1st Variance , 1ª variante 1st X-Coord , 1° X-Coord 1st Y-Coord , 1a Y-Coord 2 Colors , 2 colori 2 Grays , 2 Grigi 2 Noise , 2 Rumore 2-Strip Process , Processo 2-Strip 2. Plasma Scale , 2. 2. Scala al plasma 20. Scale to Width , 20. Scala alla larghezza 21. Scale to Height , 21. Scala ad altezza 216 Keypoints , 216 punti chiave 22. Correlated Channels , 22. 22. Canali correlati 22.5 Deg. , 22,5 Deg. 23. Boundary , 23. Confine 24. Warp Channel(s) , 24. 24. Canale(i) di curvatura 25. Random Negation , 25. 25. Negazione casuale 26. Random Negation Channel(s) , 26. 26. Canale(i) di negazione casuale 27 Keypoints , 27 punti chiave 27. Gamma Offset , 27. 27. Offset gamma 270 Deg. , 270 gradi. 28. Hue Offset , 28. 28. Sfasamento della tinta 29. Normalise , 29. Normalizzare 2nd , 2º 2nd Additional Palette (.Gpl) , 2a Paletta aggiuntiva (.Gpl) 2nd Color , 2° Colore 2nd Parameter , 2° parametro 2nd Text , 2° Testo 2nd Tone , 2° Tono 2nd Variance , 2a Varianza 2nd X-Coord , 2° X-Coord 2nd Y-Coord , 2a Y-Coord 2x Type , 2x Tipo 2XY Mirror , Specchio 2XY 2xy-Axes , 2xy-assi 3 Colors , 3 colori 3 Grays , 3 Grigi 3 Mix , 3 Mescola 3. Plasma Alpha Channel , 3. 3. Canale alfa del plasma 30. Minimum Hue , 30. Tinta minima 31. Maximum Hue , 31. 31. Tinta massima 32. Minimum Saturation , 32. 32. Saturazione minima 33. Maximum Saturation , 33. 33. Saturazione massima 34. Minimum Value , 34. 34. Valore minimo 343 Keypoints , 343 punti chiave 35. Maximum Value , 35. Valore massimo 36. Hue Offset , 36. Sfasamento della tinta 37. Saturation Offset , 37. 37. Offset di saturazione 38. Value Offset , 38. 38. Compensazione del valore 3D Blocks , Blocchi 3D 3D CLUT (Fast) , 3D CLUT (Veloce) 3D CLUT (Precise) , CLUT 3D (Preciso) 3D Colored Object , Oggetto colorato in 3D 3D Conversion , Conversione 3D 3D Elevation , Elevazione 3D 3D Elevation [Animated] , Elevazione 3D [Animato] 3D Extrusion , Estrusione 3D 3D Extrusion [Animated] , Estrusione 3D [Animato] 3D Image Object , Oggetto immagine 3D 3D Image Object [Animated] , Oggetto immagine 3D [Animato] 3D Image Type , Tipo di immagine 3D 3D Lathing , Tornitura 3D 3D Metaballs , Metaballe 3D 3D Random Objects , Oggetti casuali 3D 3D Reflection , Riflessione 3D 3D Rubber Object , Oggetto in gomma 3D 3D Text Pointcloud , Pointcloud di testo 3D 3D Tiles , Piastrelle 3D 3D Video Conversion , Conversione video 3D 3D Waves , Onde 3D 3rd , Terzo 3rd Color , 3° Colore 3rd Parameter , 3° parametro 3rd Tone , 3° Tono 3rd X-Coord , 3° X-Coord 3rd Y-Coord , 3a Y-Coord 4 Colors , 4 colori 4 Grays , 4 Grigi 4. Segmentation [No Alpha Channel] , 4. 4. Segmentazione [Nessun canale alfa] 4096x4096 Layer , 4096x4096 Strato 45 Deg. , 45 gradi. 4th , Quarto 4th Color , 4° Colore 4th Tone , 4° Tono 5. Edge Threshold , 5. 5. Soglia del bordo 512x512 Layer , 512x512 Strato 5th , 5 5th Color , 5° Colore 5th Tone , 5° Tono 6. Smoothness , 6. 7. Liscio come l'olio 60's (faded Alt) , Anni '60 (Alt sbiadito) 60's (faded) , Anni '60 (sbiadito) 64 (Faster) , 64 (Più veloce) 64 Keypoints , 64 punti chiave 67.5 Deg. , 67,5 Deg. 6th , 6 6th Color , 6° Colore 6th Tone , 6° Tono 7. Blur , 7. 8. Sfocatura 7th , 7 7th Color , 7° Colore 7th Tone , 7° Tono 8 Colors , 8 colori 8 Grays , 8 Grigi 8 Keypoints (RGB Corners) , 8 punti chiave (angoli RGB) 8. Quadtree Pixelisation [No Alpha Channel] , 8. 8. Pixelizzazione a quadrilatero [Nessun canale alfa] 8th , ottavo 8th Color , 8° Colore 8th Tone , 8° Tono 9. Quadtree Min Precision , 9. Precisione minima dei quadrupedi 90 Deg. , 90 gradi. 9th , 9a 9th Color , 9° Colore [Cyan]MYK , [Ciano]MYK A Lot of Cyan , Un sacco di ciano A Lot of Key , Un sacco di chiave A Lot of Magenta , Un sacco di Magenta A Lot of Yellow , Un sacco di giallo A-Color Factor , Fattore A-Color A-Color Shift , Spostamento A-Color A-Color Smoothness , A-Color scorrevolezza A-Component , A-Componente A-Value , Valore A A4 / 100 PPI (Recommended) , A4 / 100 PPI (consigliato) About G'MIC , Informazioni su G'MIC Absolute Brightness , Luminosità assoluta Absolute Value , Valore assoluto Abstraction , Astrazione Acceleration , Accelerazione Action , Azione Action #1 , Azione #1 Action #10 , Azione #10 Action #11 , Azione #11 Action #12 , Azione #12 Action #13 , Azione #13 Action #14 , Azione #14 Action #15 , Azione #15 Action #16 , Azione #16 Action #17 , Azione #17 Action #18 , Azione #18 Action #19 , Azione #19 Action #2 , Azione #2 Action #20 , Azione #20 Action #21 , Azione #21 Action #22 , Azione #22 Action #23 , Azione #23 Action #24 , Azione #24 Action #3 , Azione #3 Action #4 , Azione #4 Action #5 , Azione #5 Action #6 , Azione #6 Action #7 , Azione #7 Action #8 , Azione #8 Action #9 , Azione #9 Action Magenta 01 , Azione Magenta 01 Action Red 01 , Azione Rosso 01 Activate 'Pencil Smoother' , Attivare 'lisciatrice di matite'. Activate Color Enhancement , Attivare il miglioramento del colore Activate Colors Geometric Shapes , Attivare i colori Forme geometriche Activate Custom Filter , Attivare il filtro personalizzato Activate Lizards , Attivare le lucertole Activate Mirror , Attivare Specchio Activate Pink Elephants , Attivare gli elefanti rosa Activate Second Direction , Attivare la seconda direzione Activate Shakes , Attivare i frullati Activate Slice 1 , Attivare Fetta 1 Activate Slice 2 , Attivare Slice 2 Activate Slice 3 , Attivare Slice 3 Activate Slice 4 , Attivare Slice 4 Adaptive , Adattabile Add , Aggiungi Add 1px Outline , Aggiungi 1px Contorno Add Alpha Channels to Detail Scale Layers , Aggiungere i canali alfa ai livelli della scala di dettaglio Add as a New Layer , Aggiungi come nuovo livello Add Chalk Highlights , Aggiungi i punti salienti del gesso Add Color Background , Aggiungi colore di sfondo Add Comment Area in HTML Page , Aggiungi un'area commenti nella pagina HTML Add Grain , Aggiungi il grano Add Image Label , Aggiungi etichetta immagine Add Painter's Touch , Aggiungi il tocco del pittore Add User-Defined Constraints (Interactive) , Aggiungere vincoli definiti dall'utente (interattivo) Additional Duplicates Count , Conteggio supplementare dei duplicati Additional Outline , Schema aggiuntivo Additive , Additivo Adjust Background Reconstruction , Regolare la ricostruzione dello sfondo Adventure 1453 , Avventura 1453 Aggresive , Aggressivo Aggressive Highlights Recovery 5 , Aggressivo evidenzia il recupero 5 Algorithm , Algoritmo Alien Green , Verde alieno Align Image Streams , Allineare i flussi di immagini Align Layers , Allineare gli strati Aligned , Allineato Alignment Type , Tipo di allineamento All , Tutti All 45° Rotations , Tutti i 45° Rotazioni All 90° Rotations , Tutti i 90° Rotazioni All [Collage] , Tutti [Collage] All but Reference Color , Tutti tranne il colore di riferimento All Layers and Masks , Tutti gli strati e le maschere All Tones , Tutti i toni All XY-Flips , Tutti gli XY-Flips Allow Angle , Permettere l'angolo Allow Outer Blending , Consentire la miscelazione esterna Allow Self Intersections , Consentire l'auto-intersezione Alpha Channel , Canale Alfa Alpha Mode , Modalità Alfa Also Match Gradients , Anche i gradienti della partita Ambient (%) , Ambiente (%) Ambient Lightness , Leggerezza ambientale Amount , Importo Amplitude , Ampiezza Amplitude (%) , Ampiezza (%) Amplitude / Angle , Ampiezza / Angolo Anaglypgh Green/magenta Optimized , Anaglypgh Verde/magenta Ottimizzato Anaglyph Blue/yellow , Anaglifo Blu/giallo Anaglyph Blue/yellow Optimized , Anaglifo Blu/giallo ottimizzato Anaglyph Glasses Adjustment , Regolazione degli occhiali anaglifi Anaglyph Green/magenta , Anaglifo Verde/magenta Anaglyph Green/magenta Optimized , Anaglifo Verde/magenta Ottimizzato Anaglyph Reconstruction , Ricostruzione anaglifi Anaglyph Red/cyan , Anaglifo Rosso/ciano Anaglyph Red/cyan Optimized , Anaglifo Rosso/ciano ottimizzato Anaglyph: Red/Cyan , Anaglifo: Rosso/Cyan AnalogFX - Anno 1870 Color , AnalogFX - Anno 1870 Colore AnalogFX - Old Style I , AnalogFX - Vecchio stile I AnalogFX - Old Style II , AnalogFX - Vecchio stile II AnalogFX - Old Style III , AnalogFX - Vecchio stile III AnalogFX - Sepia Color , AnalogFX - Colore seppia AnalogFX - Soft Sepia I , AnalogFX - Seppia morbida I AnalogFX - Soft Sepia II , AnalogFX - Soft Seppia II Analysis Scale , Scala di analisi Analysis Smoothness , Analisi scorrevolezza And , E Angle , Angolo Angle (%) , Angolo (%) Angle (deg) , Angolo (deg) Angle (deg.) , Angolo (deg.) Angle / Size , Angolo / Dimensione Angle Cut , Taglio ad angolo Angle Dispersion , Dispersione angolare Angle Image Contour , Contorno dell'immagine angolare Angle of Disturbance Surface , Angolo della superficie di disturbo Angle of Main Nebulous Surface , Angolo della superficie nebulosa principale Angle Range , Gamma di angoli Angle Range (deg.) , Angolo di campo (gradi) Angle Tilt , Angolo di inclinazione Angle Variations , Variazioni di angolo Anguish , Angoscia Angular , Angolare Angular Precision , Precisione angolare Angular Tiles , Piastrelle angolari Anisotropic , Anisotropa Anisotropy , Anisotropia Annular Steiner Chain Round Tiles , Piastrelle circolari per catene anulare Steiner Antisymmetry , Antisimmetria Any , Qualsiasi Apocalypse This Very Moment , Apocalisse questo momento Apples , Mele Apply Adjustments On , Applicare gli aggiustamenti su Apply Color Balance , Applicare il bilanciamento del colore Apply External CLUT , Applicare CLUT esterno Apply Mask , Applicare la maschera Apply Skin Tone Mask , Applicare la maschera di tono della pelle Apply Transformation From , Applicare la trasformazione da Aqua and Orange Dark , Acqua e arancione scuro Area Smoothness , Area scorrevolezza Areas Light Adjustment , Aree di regolazione della luce Areas Smoothness , Aree levigatezza Array [Faded] , Array [Svanito] Array [Mirrored] , Array [Specchio] Array [Random Colors] , Array [Colori casuali] Array [Random] , Array [Casuale] Array [Regular] , Array [Regolare] Array Mode , Modalità Array Arrows , Frecce Arrows (Outline) , Frecce (Contorno) Artistic Modern , Artistico Moderno Artistic Hard , Duro Artistico Artistic Round , Giro artistico Ascii Art , Arte Ascii Aspect , Aspetto Aspect Ratio , Rapporto di aspetto Asplenium Adiantum-Nigrum , Asplenio Adiantum-Nigrum Associated Color , Colore associato Attenuation , Attenuazione Auto Reduce Level (Level Slider Is Disabled) , Auto Reduce Level (il cursore di livello è disabilitato) Auto Set Hue Inverse (Hue Slider Is Disabled) , Auto Set Hue Inverse (il cursore della tinta è disabilitato) Auto-Reduce Number of Frames , Auto-Ridurre il numero di fotogrammi Auto-Set Periodicity , Periodicità Auto-Set Auto-Threshold , Auto-soglia Autocrop Output Layers , Livelli di uscita Autocrop Automatic , Automatico Automatic & Contrast Mask , Maschera automatica e di contrasto Automatic [Scan All Hues] , Automatico [Scansione di tutte le tinte] Automatic Color Balance , Bilanciamento automatico del colore Automatic Depth Estimation , Stima automatica della profondità Automatic Upscale for Optimum Results , Upscale automatico per risultati ottimali Autumn , Autunno Avalanche , Valanga Average , Media Average 3x3 , Media 3x3 Average 5x5 , Media 5x5 Average 7x7 , Media 7x7 Average 9x9 , Media 9x9 Average RGB , RGB medio Average Smoothness , Levigatezza media Avg / Max Weight , Peso medio / massimo Avg Left Angle (deg.) , Angolo medio a sinistra (deg.) Avg Length Factor (%) , Fattore di lunghezza media (%) Avg Right Angle (deg.) , Angolo retto medio (deg.) Avg Thickness Factor (%) , Fattore di spessore medio (%) Axis , Asse Azimuth , Azimut B&W , B&N B&W Pencil [Animated] , Matita B/N [Animato] B&W Photograph , Fotografia in bianco e nero B&W Stencil , Stencil B/N B&W Stencil [Animated] , Stencil in bianco e nero [Animato] B-Color Factor , Fattore B-Colore B-Color Shift , Spostamento B-Colore B-Color Smoothness , B-Colore scorrevolezza B-Component , Componente B Background Color , Colore di sfondo Background Intensity , Intensità di fondo Background Point (%) , Punto di fondo (%) Backward , Indietro Backward Horizontal , Orizzontale all'indietro Backward Vertical , Verticale all'indietro Balance , Saldo Balance Color , Equilibrio del colore Balance SRGB , Saldo SRGB Ball , Palla Balloons , Palloncini Balls , Palle Band Width , Larghezza di banda Banding Denoise , Banda Denoise Bandpass , Passo di banda Bandwidth , Larghezza di banda Barbed Wire , Filo spinato Barnsley Fern , Felce d'orzo Bars , Bar Base Reference Dimension , Dimensione di riferimento di base Base Scale , Scala di base Base Thickness (%) , Spessore di base (%) Basic Adjustments , Regolazioni di base Batch Processing , Elaborazione in lotti Bayer Filter , Filtro Bayer Bayer Reconstruction , Ricostruzione Bayer Behind , Dietro Below , Sotto Berlin Sky , Cielo di Berlino Best Match , Migliore partita BG Textured , BG Strutturato Bi-Directional , Bi-direzionale Bias , Sbilanciamento Bicubic , Bicubico Bidirectional [Sharp] , Bidirezionale [Sharp] Bidirectional [Smooth] , Bidirezionale [Liscio] Bidirectional Rendering , Rendering bidirezionale Bilateral , Bilaterale Bilateral Radius , Raggio bilaterale Binary , Binario Binary Digits , Cifre binarie Bit Masking (End) , Mascheramento bit (Fine) Bit Masking (Start) , Mascheramento bit (Inizio) Black , Nero Black & White , Bianco e nero Black & White (25) , Bianco e nero (25) Black & White-1 , Bianco e Nero-1 Black & White-10 , Bianco e nero - 10 Black & White-2 , Bianco e Nero-2 Black & White-3 , Bianco e Nero-3 Black & White-4 , Bianco e nero - 4 Black & White-5 , Bianco e nero - 5 Black & White-6 , Bianco e Nero6 Black & White-7 , Bianco e nero - 7 Black & White-8 , Bianco e nero - 8 Black & White-9 , Bianco e nero -9 Black Crayon Graffiti , Graffiti a pastello nero Black Dices , Dadi neri Black Level , Livello nero Black on Transparent , Nero su trasparente Black on Transparent White , Nero su bianco trasparente Black on White , Nero su bianco Black Point , Punto nero Black Star , Stella nera Black to White , Da nero a bianco Blacks , Neri Blank , Vuoto Bleech Bypass Green , Bleech Bypass verde Bleech Bypass Yellow 01 , Bleech Bypass Giallo 01 Blend , Miscela Blend [Average All] , Miscela [Media Tutti] Blend [Edges] , Miscela [Bordi] Blend [Fade] , Miscela [Dissolvenza] Blend [Median] , Miscela [Mediana] Blend [Seamless] , Miscela [Senza soluzione di continuità] Blend [Standard] , Miscela [Standard] Blend All Layers , Miscelare tutti gli strati Blend Decay , Decadimento della miscela Blend Mode , Modalità di miscelazione Blend Rays , Raggi di miscelazione Blend Scales , Bilance di miscelazione Blend Size , Dimensione della miscela Blend Threshold , Soglia di miscelazione Blending Mode , Modalità di miscelazione Blending Size , Dimensione di miscelazione Blindness Type , Tipo di cecità Blob 1 Color , Blob 1 Colore Blob 10 Color , Blob 10 Colore Blob 11 Color , Blob 11 Colore Blob 12 Color , Blob 12 Colore Blob 2 Color , Blob 2 Colore Blob 3 Color , Blob 3 Colore Blob 4 Color , Blob 4 Colore Blob 5 Color , Blob 5 Colore Blob 6 Color , Blob 6 Colore Blob 7 Color , Blob 7 Colore Blob 8 Color , Blob 8 Colore Blob 9 Color , Blob 9 Colore Blob Size , Dimensione del blob Blobs Editor , Redattore di blob Bloc , Blocco Bloc Size (%) , Dimensione del blocco (%) Blockism , Bloccismo Blue , Blu Blue & Red Chrominances , Cromanze blu e rosse Blue Chroma Factor , Fattore di croma blu Blue Chroma Shift , Spostamento del croma blu Blue Chroma Smoothness , Blu Croma Levigatezza del croma Blue Chrominance , Crominanza blu Blue Cold Fade , Dissolvenza a freddo blu Blue Dark , Blu scuro Blue Factor , Fattore blu Blue House , Casa Blu Blue Ice , Ghiaccio blu Blue Level , Livello Blu Blue Mono , Blu Mono Blue Rotations , Rotazioni blu Blue Screen Mode , Modalità schermo blu Blue Shadows 01 , Ombre blu 01 Blue Shift , Turno Blu Blue Smoothness , Blu scorrevolezza Blue Steel , Acciaio blu Blue Wavelength , Lunghezza d'onda blu Blue-Green , Blu-verde Blur , Sfocatura Blur [Angular] , Sfocatura [Angolare] Blur [Bloom] , Sfocatura [Bloom] Blur [Depth-Of-Field] , Sfocatura [Profondità di campo] Blur [Gaussian] , Sfocatura [Gaussiano] Blur [Glow] , Sfocatura [Bagliore] Blur [Linear] , Sfocatura [Lineare] Blur [Multidirectional] , Sfocatura [Multidirezionale] Blur [Radial] , Sfocatura [Radiale] Blur Alpha , Sfocatura Alfa Blur Amount , Importo sfocato Blur Amplitude , Ampiezza della sfocatura Blur Dodge and Burn Layer , Sfocatura Dodge e strato di bruciato Blur Factor , Fattore di sfocatura Blur Frame , Telaio sfocatura Blur Percentage , Percentuale di sfocatura Blur Precision , Precisione della sfocatura Blur Shade , Sfocatura Ombra Blur Standard Deviation , Deviazione standard della sfocatura Blur Strength , Forza della sfocatura Blur the Mask , Sfocatura della maschera Boats , Barche Boost Chromaticity , Aumentare la cromaticità Boost Contrast , Aumentare il contrasto Boost Smooth , Aumenta liscio Boost Stroke , Aumentare la corsa Border Color , Colore del confine Border Opacity , Opacità al confine Border Outline , Contorno del confine Border Smoothness , Lisciozza del confine Border Thickness (%) , Spessore del bordo (%) Border Width , Larghezza del confine Both , Entrambi Bottles , Bottiglie Bottom , In basso Bottom and Left Foreground , In basso e primo piano a sinistra Bottom and Right Foreground , In basso e a destra in primo piano Bottom and Top Foreground , In basso e in primo piano Bottom Layer , Strato inferiore Bottom Left , In basso a sinistra Bottom Right , In basso a destra Bottom Size , Dimensione del fondo Bottom-Left , In basso a sinistra Bottom-Left Vertex (%) , Vertice in basso a sinistra (%) Bottom-Right , In basso a destra Bottom-Right Vertex (%) , Vertice in basso a destra (%) Bouncing Balls , Palle rimbalzanti Boundaries (%) , Confini (%) Boundary , Confine Boundary Condition , Condizione di confine Boundary Conditions , Condizioni di confine Box Fitting , Montaggio della scatola Branches , Filiali Braque: Landscape near Antwerp , Braque: Paesaggio vicino ad Anversa Braque: Little Bay at La Ciotat , Braque: Piccola baia a La Ciotat Braque: The Mandola , Braque: La Mandola Brighness , Luminosità Bright , Luminoso Bright Green , Verde brillante Bright Green 01 , Verde brillante 01 Bright Length , Lunghezza luminosa Bright Pixels , Pixel luminosi Bright Teal Orange , Alzavola brillante arancione Bright Warm , Luminoso Caldo Brighter , Più luminoso Brightness , Luminosità Brightness (%) , Luminosità (%) Bristle Size , Dimensione setole Bronze , Bronzo Built-in Gray , Grigio incorporato Bump Factor , Fattore di urto Bump Map , Mappa d'urto Burn , Masterizzare Burn Blur , Sfocatura da ustione Burn Strength , Forza di combustione Butterfly , Farfalla By Blue Chrominance , Di Blue Chrominance By Blue Component , Da Blue Component By Custom Expression , Per espressione personalizzata By Green Component , Per componente verde By Iteration , Per Iterazione By Lightness , Per leggerezza By Luminance , Per Luminanza By Red Chrominance , Di Red Chrominance By Red Component , Da Red Component By Value , Per valore Camera Motion Only , Solo movimento della telecamera Camera X , Macchina fotografica X Camera Y , Macchina fotografica Y Candle Light , Candela a lume di candela Canvas , Tela Canvas Brightness , Luminosità della tela Canvas Color , Colore della tela Canvas Darkness , Tela Oscura Canvas Texture , Struttura della tela Car , Auto Card Suits , Tute per carte Cartesian Transform , Trasformazione cartesiana Cartoon , Cartone animato Cartoon [Animated] , Cartone animato Category , Categoria Cell Size , Dimensione della cella Center , Centro Center (%) , Centro (%) Center Background , Sfondo del centro Center Foreground , Primo piano del centro Center Help , Aiuto del centro Center Size , Dimensione del centro Center Smoothness , Levigatezza del centro Center X , Centro X Center X-Shift , Centro X-Shift Center Y , Centro Y Center Y-Shift , Turno di centro a Y Centering (%) , Centraggio (%) Centering / Scale , Centraggio / Scala Centers Color , Centri Colore Centers Radius , Raggio dei centri Centimeter , Centimetro Central Perspective Outdoor , Prospettiva centrale all'aperto Central Perspective Indoor , Prospettiva centrale al coperto Central Perspective Outdoor , Prospettiva centrale all'aperto Centre , Centro Chalk It Up , Gesso in su Channel #1 , Canale #1 Channel #2 , Canale #2 Channel #3 , Canale #3 Channel Processing , Elaborazione dei canali Channel(s) , Canale(i) Channels , Canali Channels to Layers , Canali a strati Charcoal , Carboncino Checkered , A scacchi Checkered Inverse , Invertito a scacchi Chemical 168 , Chimica 168 Chessboard , Scacchiera Chroma Noise , Rumore di croma Chromatic Aberrations , Aberrazioni cromatiche Chromaticity From , Cromaticità Da Chrome 01 , Cromo 01 Chrominances Only (ab) , Solo crominanze (ab) Chrominances Only (CbCr) , Solo crominanze (CbCr) Cine Cold , Cine freddo Cine Teal Orange 1 , Cine Teal Teal Orange 1 Cine Teal Orange 2 , Cine Teal Teal Orange 2 Cine Vibrant , Cine Vibrante Cine Warm , Cigna calda Cinematic (8) , Cinematografico (8) Cinematic for Flog , Cinematic per Flog Cinematic Lady Bird , Cinematografica Lady Bird Cinematic Mexico , Messico cinematografico Cinematic Travel (29) , Viaggio al cinema (29) Circle , Cerchio Circle (Inv.) , Cerchio (Inv.) Circle 1 , Cerchio 1 Circle 2 , Cerchio 2 Circle Art , Arte del Cerchio Circle to Square , Da cerchio a quadrato Circle Transform , Trasformazione del cerchio Circles , Circoli Circles (Outline) , Cerchi (Schema) Circles 1 , Cerchi 1 Circles 2 , Cerchi 2 Circular , Circolare City 7 , Città 7 Clarity , Chiarezza Classic Chrome , Cromo classico Classic Teal and Orange , Alzavola classica e arancia Clean , Pulire Clean Text , Testo pulito Clear Control Points , Cancella i punti di controllo Clear Teal Fade , Sfuma l'alzavola trasparente Cliff , Scogliera Closeup , Primo piano Closing , Chiusura Closing - Opening , Chiusura - Apertura Closing - Original , Chiusura - Originale Clouds , Nuvole CLUT from After - Before Layers , CLUT da Dopo - Prima degli strati CLUT Opacity , CLUT Opacità CM[Yellow]K , CM[Giallo]K CMY[Key] , CMY[Chiave] CMYK [cyan] , CMYK [ciano] CMYK [Key] , CMYK [Chiave] CMYK [Yellow] , CMYK [Giallo] CMYK Tone , Tono CMYK Coarse , Ruvido Coarsest (faster) , Più grossolano (più veloce) Code , Codice Coefficients , Coefficienti Coffee 44 , Caffè 44 Coherence , Coerenza Cold Clear Blue , Azzurro freddo Cold Clear Blue 1 , Azzurro freddo 1 Cold Simplicity 2 , Semplicità a freddo 2 Color , Colore Color (rich) , Colore (ricco) Color 1 , Colore 1 Color 1 (Up/Left Corner) , Colore 1 (Angolo su/sinistra) Color 2 , Colore 2 Color 2 (Up/Right Corner) , Colore 2 (angolo in alto/angolo destro) Color 3 , Colore 3 Color 3 (Bottom/Left Corner) , Colore 3 (angolo in basso a sinistra) Color 4 , Colore 4 Color 4 (Bottom/Right Corner) , Colore 4 (angolo inferiore/destro) Color A , Colore A Color Abstraction Opacity , Opacità dell'astrazione del colore Color Abstraction Paint , Pittura astratta a colori Color B , Colore B Color Balance , Bilanciamento del colore Color Basis , Base di colore Color Blending , Miscelazione dei colori Color Blindness , Cecità di colore Color Blue-Yellow , Colore Blu-Giallo Color Boost , Aumento del colore Color Burn , Colore Bruciare Color C , Colore C Color Channel Smoothing , Canale dei colori lisciatura Color Channels , Canali di colore Color D , Colore D Color Dispersion , Dispersione del colore Color Doping , Doping a colori Color E , Colore E Color Effect Mode , Modalità effetto colore Color F , Colore F Color G , Colore G Color Gamma , Gamma di colore Color Grading , Classificazione del colore Color Green-Magenta , Colore Verde-Magenta Color Highlights , Colori in evidenza Color Image , Immagine a colori Color Intensity , Intensità del colore Color Mask , Maschera di colore Color Mask [Interactive] , Maschera di colore [Interattivo] Color Median , Colore Mediano Color Metric , Colore Metrico Color Midtones , Colore Midtones Color Mode , Modalità colore Color Model , Modello a colori Color Negative , Colore Negativo Color on White , Colore su bianco Color Overall Effect , Effetto complessivo del colore Color Presets , Preimpostazioni di colore Color Quantization , Quantizzazione del colore Color Rendering , Rendering del colore Color Shading (%) , Sfumatura del colore (%) Color Shadows , Ombre di colore Color Smoothness , Colore Levigatezza del colore Color Space , Spazio di colore Color Spots + Extrapolated Colors + Lineart , Punti di colore + Colori estrapolati + Lineart Color Spots + Lineart , Punti di colore + Lineart Color Strength , Forza del colore Color Temperature , Temperatura di colore Color Tolerance , Tolleranza di colore Color Variation [Random -1] , Variazione di colore [Casuale -1] Colored Geometry , Geometria colorata Colored Grain , Grana colorata Colored Lineart , Lineart colorato Colored on Black , Colorato su nero Colored on Transparent , Colorato su Trasparente Colored Outline , Contorno colorato Colored Pencils , Matite colorate Colored Regions , Regioni colorate Colorful , Colorato Colorful 0209 , Colorato 0209 Colorful Blobs , Blob colorate Coloring , Colorare Colorize [Interactive] , Colorare [Interattivo] Colorize [Photographs] , Colorare [Fotografie] Colorize [with Colormap] , Colorare [con Colormap] Colorize Lineart [Auto-Fill] , Colorare Lineart [Auto-Fill] Colorize Lineart [Propagation] , Colorare Lineart [Propagazione] Colorize Lineart [Smart Coloring] , Colorare Lineart [Colorazione intelligente] Colorize Mode , Modalità Colorazione Colorized Image (1 Layer) , Immagine colorata (1 strato) Colormap Type , Tipo Colormap Colors , Colori Colors A , Colori A Colors B , Colori B Colors Only , Solo colori Colors Only (1 Layer) , Solo colori (1 strato) Colors to Layers , Colori a strati Colorspace , Spazio colore Colour , Colore Colour Channels , Canali di colore Colour Model , Modello di colore Colour Smoothing , Lisciatura del colore Colour Space Mode , Modalità Spazio Colore Column by Column , Colonna per colonna Comic Style , Stile comico Comix Colors , Colori Comix Components , Componenti Composed Layers , Strati composti Compress Highlights , Caratteristiche principali del compressore Compression Blur , Sfocatura a compressione Compression Filter , Filtro a compressione Computation Mode , Modalità di calcolo Cone , Cono Conflict 01 , Conflitto 01 Conformal Maps , Mappe conformi Connectivity , Connettività Connectors Centering , Centraggio dei connettori Connectors Variability , Variabilità dei connettori Constrain Image Size , Dimensioni dell'immagine Constrain Values , Valori limite Constrained Sharpen , Aguzza la vista Constraint Radius , Raggio di restrizione Continuous Droste , Droste continua Contour Coherence , Coerenza dei contorni Contour Detection (%) , Rilevamento del contorno (%) Contour Normalization , Normalizzazione dei contorni Contour Precision , Precisione del contorno Contour Threshold , Soglia di contorno Contour Threshold (%) , Soglia di contorno (%) Contours , Contorni Contours + Flocon/Snowflake , Contorni + Flocon/Fiocco di neve Contours Recursion , Ricorsione dei contorni Contrast , Contrasto Contrast (%) , Contrasto (%) Contrast Smoothness , Contrasto Levigatezza Contrast Swiss Mask , Maschera svizzera a contrasto Contrast with Highlights Protection , Contrasto con la protezione delle alte luci Contrasty Afternoon , Pomeriggio di contrasto Contrasty Green , Verde a contrasto Contributors , Collaboratori Control Point 1 , Punto di controllo 1 Control Point 2 , Punto di controllo 2 Control Point 3 , Punto di controllo 3 Control Point 4 , Punto di controllo 4 Control Point 5 , Punto di controllo 5 Control Point 6 , Punto di controllo 6 Convolve , Convolgere Cool (256) , Fresco (256) Cool / Warm , Fresco / Caldo Copper , Rame Corner Brightness , Luminosità d'angolo Correlated Channels , Canali correlati Counter Clockwise , In senso antiorario Course 4 , Corso 4 Cracks , Crepe Crease , Piega Creative Pack (33) , Pacchetto creativo (33) Crip Winter , Inverno Crip Crisp Romance , Romanticismo frizzante Crisp Warm , Caldo e frizzante Criterion , Criterio Crop , Ritaglio Crop (%) , Raccolto (%) Cross Process CP 130 , Processo incrociato CP 130 Cross Process CP 14 , Processo incrociato CP 14 Cross Process CP 15 , Processo incrociato CP 15 Cross Process CP 16 , Processo incrociato CP 16 Cross Process CP 18 , Processo incrociato CP 18 Cross Process CP 3 , Processo incrociato CP 3 Cross Process CP 4 , Processo incrociato CP 4 Cross Process CP 6 , Processo incrociato CP 6 Cross-Hatch Amount , Importo del portellone trasversale Crossed , Attraversato Crosses 1 , Croci 1 Crosses 2 , Croci 2 CRT Sub-Pixels , Sub-Pixel CRT Crystal Background , Sfondo di cristallo Cube , Cubo Cube (256) , Cubo (256) Cubicle 99 , Cubicolo 99 Cubism , Cubismo Cubism on Color Abstraction , Cubismo sull'astrazione del colore Cup , Coppa Cupid , Cupido Curvature , Curvatura Curvature Shadow , Ombra a curvatura Curve Amount , Curva Importo Curve Angle , Angolo di curvatura Curve Length , Lunghezza della curva Curved , Curvo Curved Stroke , Corsa curva Curves , Curve Curves Previously Defined , Curve definite in precedenza Custom , Personalizzato Custom Code [Global] , Codice personalizzato [Globale] Custom Code [Local] , Codice personalizzato [Locale] Custom Correction Map , Mappa di correzione personalizzata Custom Depth Correction , Correzione di profondità personalizzata Custom Depth Maps Stream , Flusso di mappe di profondità personalizzate Custom Dictionary , Dizionario personalizzato Custom Filter Code , Codice filtro personalizzato Custom Formula , Formula personalizzata Custom Kernel , Kernel personalizzato Custom Layers , Strati personalizzati Custom Layout , Layout personalizzato Custom Style (Bottom Layer) , Stile personalizzato (strato inferiore) Custom Style (Top Layer) , Stile personalizzato (strato superiore) Custom Transform , Trasformazione personalizzata Customize CLUT , Personalizza CLUT Cut , Taglia Cut & Normalize , Taglia e normalizza Cut High , Taglio alto Cut Low , Taglio basso Cutout , Ritaglio Cyan , Ciano Cyan Factor , Fattore Ciano Cyan Shift , Turno Ciano Cyan Smoothness , Ciano scorrevolezza Cycle Layers , Strati di ciclo Cycles , Cicli Cylinder , Cilindro D and O 1 , D e O 1 Damping per Octave , Smorzamento per ottava Dark Motive , Motivo scuro Dark Blues in Sunlight , Blu scuro alla luce del sole Dark Boost , Scuro Boost Dark Color , Colore scuro Dark Edges , Bordi scuri Dark Green 02 , Verde scuro 02 Dark Green 1 , Verde scuro 1 Dark Grey , Grigio scuro Dark Length , Lunghezza scura Dark Motive , Motivo scuro Dark Pixels , Pixel scuri Dark Place 01 , Posto scuro 01 Dark Screen , Schermo scuro Dark Sky , Cielo scuro Dark Walls , Muri scuri Darken , Scurire Darker , Più scuro Darkness , Buio Darkness Level , Livello di oscurità Date 39 , Data 39 Day for Night , Giorno per la notte Daylight Scene , Scena alla luce del giorno De-Anaglyph , De-Analisi Debug Font Size , Dimensione del carattere di debug Decompose , Decomporre Decompose Channels , Decomporre i canali Decoration , Decorazione Decreasing , In diminuzione Deep , Profondo Deep Blue , Blu profondo Deep Dark Warm , Caldo scuro profondo Deep High Contrast , Profondo Alto contrasto Deep Teal Fade , Dissolvenza alzavola profonda Deep Warm Fade , Dissolvenza calda e profonda Default , Predefinito Defects Contrast , Difetti Contrasto Defects Density , Difetti Densità Defects Size , Dimensione dei difetti Defects Smoothness , Difetti Lisciozza Deform , Deformare Delaunay: Portrait De Metzinger , Delaunay: Ritratto De Metzinger Delaunay: Windows Open Simultaneously , Delaunay: finestre aperte contemporaneamente Delete Layer Source , Cancellare la fonte del livello Density , Densità Density (%) , Densità (%) Depth , Profondità Depth Fade In Frames , Dissolvenza di profondità nei frame Depth Fade Out Frames , Profondità Dissolvenza cornici Depth Field Control , Controllo di profondità del campo Depth Map , Mappa della profondità Depth Map Construction , Costruzione della mappa della profondità Depth Map Only , Solo mappa della profondità Depth Map Reconstruction , Ricostruzione della mappa della profondità Depth Maps Only , Solo mappe di profondità Depth-Of-Field Type , Tipo di profondità di campo Desaturate (%) , Desaturato (%) Desaturate Norm , Norma desaturata Descent Method , Metodo della discesa Destination (%) , Destinazione (%) Destination X-Tiles , Destinazione X-Tiles Destination Y-Tiles , Destinazione Y-Tiles Detail , Dettaglio Detail Level , Livello di dettaglio Detail Reconstruction Detection , Rilevamento della ricostruzione di dettaglio Detail Reconstruction Smoothness , Dettaglio Ricostruzione Levigatezza Detail Reconstruction Strength , Dettaglio Forza di ricostruzione Detail Reconstruction Style , Dettaglio Stile di ricostruzione Detail Scale , Scala di dettaglio Detail Strength , Dettaglio Forza Details , Dettagli Details Amount , Dettagli Importo Details Equalizer , Dettagli Equalizzatore Details Scale , Dettagli Scala Details Smoothness , Dettagli Levigatezza Details Strength (%) , Dettagli Forza (%) Detect Skin , Rilevamento della pelle Deuteranomaly , Deuteranomalia Deviation , Deviazione Diamond , Diamante Diamond (Inv.) , Diamante (Inv.) Diamonds , Diamanti Diamonds (Outline) , Diamanti (Schema) Dices , Dadi Dices with Colored Numbers , Dadi con numeri colorati Dices with Colored Sides , Dadi con i lati colorati Difference , Differenza Difference Mixing , Differenza di miscelazione Difference of Gaussians , Differenza dei gaussiani Different Axis , Asse diverso Diffuse (%) , Diffuso (%) Diffuse Shadow , Ombra diffusa Diffusion , Diffusione Diffusion Tensors , Tensori di diffusione Diffusivity , Diffusione Digits , Cifre Dilatation , Dilatazione Dilate , Dilata Dilation , Dilatazione Dilation - Original , Dilatazione - Originale Dilation / Erosion , Dilatazione / Erosione Dimension , Dimensione Dimension [Diff] , Dimensione [Diff] Dimension A , Dimensione A Dimensions (%) , Dimensioni (%) Dimensions Pixels , Dimensioni Pixel Dipole: 1/(4*z^2-1) , Dipolo: 1/(4*z^2-1) Direct , Diretta Direction , Direzione Directions 23 , Indicazioni stradali 23 Disable , Disattivare Disabled , Disabili Discard Contour Guides , Scartare le guide di contorno Discard Transparency , Scartare la trasparenza Disco , Discoteca Display , Visualizzare Display Color Axes , Assi dei colori del display Display Contours , Visualizzare i contorni Display Coordinates , Coordinate del display Display Coordinates on Preview Window , Visualizzare le coordinate sulla finestra di anteprima Display Debug Info on Preview , Visualizzare le informazioni di debug sull'anteprima Distance , Distanza Distance (Fast) , Distanza (Veloce) Distance Transform , Trasformazione a distanza Distort Lens , Obiettivo distorto Distortion Factor , Fattore di distorsione Distortion Surface Angle , Angolo di superficie di distorsione Distortion Surface Position , Posizione della superficie di distorsione Disturbance Scale-By-Factor , Disturbo Scala per Fattore Disturbance X , Disturbo X Disturbance Y , Disturbo Y Dither Output , Uscita Dither Divide , Dividere Do Not Flatten Transparency , Non appiattire la trasparenza Dodge and Burn , Schivare e bruciare Dodge Blur , Schivare la sfocatura Dodge Strength , Schivare la forza DOF Analyzer , Analizzatore DOF Dog , Cane Don't Sort , Non ordinare Dot Size , Dimensione del punto Dots , Puntini Download External Data , Scarica i dati esterni Dragon Curve , Curva del Drago Dragonfly , Libellula Drawing Mode , Modalità di disegno Drawn Montage , Montaggio disegnato Dream , Sogno Dream 1 , Sogno 1 Dream 85 , Sogno 85 Dream Smoothing , Lisciatura dei sogni Drop Green Tint 14 , Goccia Verde Tinta 14 Drop Shadow , Ombra a goccia Drop Water , Goccia d'acqua Duck , Anatra Duplicate Bottom , Duplicare il fondo Duplicate Horizontal , Duplicare orizzontale Duplicate Left , Duplicare a sinistra Duplicate Right , Duplicare il diritto Duplicate Top , Duplicare Top Duplicate Vertical , Duplicazione verticale Duration , Durata Dynamic Range Increase , Aumento della gamma dinamica Eagle , Aquila Earth , Terra Earth Tone Boost , Boost del tono di terra Easy Skin Retouch , Ritocco facile della pelle Edge Antialiasing , Bordo Antialiasing Edge Attenuation , Attenuazione dei bordi Edge Behavior X , Comportamento al bordo X Edge Behavior Y , Comportamento al bordo Y Edge Detect Includes Chroma , Edge Detect include il croma Edge Exponent , Esponente di bordo Edge Fidelity , Fedeltà di bordo Edge Influence , Influenza del bordo Edge Mask , Bordo maschera Edge Sensitivity , Sensibilità ai bordi Edge Shade , Ombra del bordo Edge Simplicity , Semplicità del bordo Edge Smoothness , Levigatezza del bordo Edge Thickness , Spessore del bordo Edge Threshold , Soglia del bordo Edge Threshold (%) , Soglia del bordo (%) Edges , Bordi Edges (%) , Bordi (%) Edges [Animated] , Bordi [Animato] Edges Offsets , Offset di bordi Edges on Fire , Bordi sul fuoco Edges-0.5 (beware: Memory-Consuming!) , Edges-0.5 (attenzione: Consumo di memoria!) Edges-1 (beware: Memory-Consuming!) , Edges-1 (attenzione: Consumo di memoria!) Edges-2 (beware: Memory-Consuming!) , Edges-2 (attenzione: Consumo di memoria!) Edgy Ember , Ambra tagliente Effect Strength , Forza dell'effetto Effect X-Axis Scaling , Scalatura dell'asse X ad effetto Effect Y-Axis Scaling , Scalatura dell'asse Y dell'effetto Eight Layers , Otto strati Eight Threads , Otto fili Elegance 38 , Eleganza 38 Elephant , Elefante Elevation , Elevazione Elevation (%) , Elevazione (%) Ellipse , Ellisse Ellipse Painting , Pittura di ellissi Ellipse Ratio , Rapporto di ellisse Ellipsionism , Ellitsionismo Ellipsionism Opacity , Opacità dell'ellisse Ellipsoid , Ellissoide Emboss , Goffratura Enable Antialiasing , Attivare Antialiasing Enable Interpolated Motion , Attivare il movimento interpolato Enable Morphology , Attivare la morfologia Enable Paintstroke , Abilita Paintstroke Enable Segmentation , Attivare la segmentazione Enchanted , Incantato End Color , Colore finale End Frame Number , Numero di telaio finale End of Mid-Tones , Fine dei toni medi End Point Connectivity , Connettività del punto finale End Point Rate (%) , Tasso del punto finale (%) Ending Angle , Angolo finale Ending Color , Colore finale Ending Feathering , Piumaggio finale Ending Point (%) , Punto finale (%) Ending Scale (%) , Scala finale (%) Ending Value , Valore finale Ending X-Centering , Fine X-Centering Ending Y-Centering , Fine del centraggio a Y Engrave , Incidi Enhance Detail , Migliora il dettaglio Enhance Details , Migliora i dettagli Equalization , Perequazione Equalization (%) , Perequazione (%) Equalize , Equalizzare Equalize and Normalize , Equalizzare e Normalizzare Equalize at Each Step , Pareggiare ad ogni passo Equalize HSI-HSL-HSV , Equalizzare HSI-HSL-HSV Equalize HSV , Equalizzare HSV Equalize Light , Equalizzare la luce Equalize Local Histograms , Equalizzare gli istogrammi locali Equalize Shadow , Equalizzare l'ombra Equation Plot [Parametric] , Grafico delle equazioni [Parametrico] Equation Plot [Y=f(X)] , Trama dell'equazione [Y=f(X) Equirectangular to Nadir-Zenith , Equirettangolare a Nadir-Zenith Erosion , Erosione Erosion / Dilation , Erosione / Dilatazione Etch Tones , Toni dell'acquaforte Eterna for Flog , Eterna per Flog Euclidean , Euclidea Euclidean - Polar , Euclidea - Polare Exclusion , Esclusione Expand , Espandere Expand Background Reconstruction , Espandere la ricostruzione di sfondo Expand Shadows , Espandere le ombre Expand Size , Espandere le dimensioni Expanding Mirrors , Specchietti espandibili Expired (fade) , Scaduto (dissolvenza) Expired (polaroid) , Scaduto (polaroid) Expired 69 , Scaduto 69 Exponent , Esponente Exponent (Imaginary) , Esponente (Immaginario) Exponent (Real) , Esponente (reale) Exponential , Esponenziale Export RGB-565 File , Esportazione del file RGB-565 Exposure , Esposizione Expression , Espressione Extend 1px , Estendere 1px External Transparency , Trasparenza esterna Extra Smooth , Extra liscio Extract Foreground [Interactive] , Estrarre il primo piano [Interattivo] Extract Objects , Estrarre oggetti Extrapolate Color Spots on Transparent Top Layer , Estrapolare le macchie di colore sullo strato superiore trasparente Extrapolate Colors As , Estrapolare i colori come Extrapolated Colors + Lineart , Colori estrapolati + Lineart Extreme , Estremo Factor , Fattore Fade , Dissolvenza Fade End , Dissolvenza Fine Fade End (%) , Fine dissolvenza (%) Fade Layers , Strati di dissolvenza Fade Start , Inizio dissolvenza Fade Start (%) , Inizio dissolvenza (%) Fade to Green , Dissolvenza al verde Faded , Svanito Faded (alt) , Sbiadito (alt) Faded (analog) , Sbiadito (analogico) Faded (extreme) , Sbiadito (estremo) Faded (vivid) , Sbiadito (vivido) Faded 47 , Svanito 47 Faded Green , Verde sbiadito Faded Look , Sguardo sbiadito Faded Print , Stampa sbiadita Faded Retro 01 , Retrò sbiadito 01 Faded Retro 02 , Retrò sbiadito 02 Fading , Dissolvenza Fading Shape , Forma di dissolvenza Fall Colors , Colori d'autunno Far Point Deviation , Deviazione del punto lontano Fast , Veloce Fast (Approx.) , Veloce (Circa.) Fast (Low Precision) Preview , Anteprima veloce (bassa precisione) Fast Approximation , Ravvicinamento rapido Fast Blend , Miscela veloce Fast Blend Preview , Anteprima della miscela veloce Fast Recovery , Recupero rapido Fast Resize , Ridimensionamento rapido Faux Infrared , Finto infrarosso Feathering , Piumaggio Feature Analyzer Smoothness , Funzione Analyzer Smoothness Feature Analyzer Threshold , Soglia dell'analizzatore delle caratteristiche Felt Pen , Penna di feltro FFT Preview , Anteprima FFT Fibers , Fibre Fibers Amplitude , Ampiezza delle fibre Fibers Smoothness , Fibre Liscio come l'olio Fibrousness , Fibrosità Fidelity Chromaticity , Fedeltà Cromaticità Fidelity Smoothness (Coarsest) , Fidelity Smoothness (più grossolana) Fidelity to Target (Coarsest) , Fedeltà al bersaglio (più grossolana) Fidelity to Target (Finest) , Fedeltà all'obiettivo (Finest) Filename , Nome del file Fill Holes , Riempire i fori Fill Holes % , Riempire i fori Fill Transparent Holes , Riempire i fori trasparenti Filled , Compilato Filled Circles , Cerchi riempiti Filling , Riempimento Film Highlight Contrast , Contrasto del film in evidenza Film Print 01 , Stampa pellicola 01 Film Print 02 , Stampa Film 02 Filter Design , Design del filtro FilterGrade Cinematic (8) , FilterGrade cinematografico (8) Final Image , Immagine finale Fine , Bene Fine 2 , Bene 2 Fine Details Smoothness , Dettagli fini Lisciozza Fine Details Threshold , Soglia dei dettagli Fine Noise , Rumore fine Fine Scale , Scala fine Finest (slower) , Finest (più lento) Finger Paint , Vernice a dito Finger Size , Dimensione del dito Fire Effect , Effetto Fuoco Fireworks , Fuochi d'artificio First , Prima First Color , Primo colore First Frame , Primo fotogramma First Offset , Primo Offset First Radius , Primo raggio First Size , Prima dimensione Fish-Eye Effect , Effetto occhio di pesce Fitting Function , Funzione di montaggio Five Layers , Cinque strati Flag , Bandiera Flag (256) , Bandiera (256) Flat , Appartamento Flat 30 , Appartamento 30 Flat Color , Colore piatto Flat Regions Removal , Rimozione di regioni pianeggianti Flatness , Piattezza Flip & Rotate Blocs , Capovolgere e ruotare i blocchi Flip Left / Right , Capovolgere a sinistra / destra Flip Left/Right , Capovolgere a sinistra/destra Flip The Pattern , Capovolgere il modello Flip Tolerance , Tolleranza al ribaltamento Flower , Fiore Foggy Night , Notte nebbiosa Folder Name , Nome della cartella Font Colors , Colori dei caratteri Font Height (px) , Altezza del carattere (px) Force Gray , Forza Grigio Force Re-Download from Scratch , Forza Re-Download da Gratta e Vinci Force Tiles to Have Same Size , Forzare le piastrelle ad avere la stessa dimensione Force Transparency , Forza la trasparenza Foreground Color , Colore di primo piano Form , Modulo Forward , Inoltrare Forward Horizontal , Avanti Orizzontale Forward Horizontal , Avanti Orizzontale Forward Vertical , Avanti verticale Four Layers , Quattro strati Four Threads , Quattro fili Fourier Analysis , Analisi di Fourier Fourier Filtering , Filtraggio di Fourier Fourier Transform , Trasformazione di Fourier Fourier Watermark , Filigrana di Fourier Fractal Noise , Rumore frattale Fractal Points , Punti frattali Fractal Set , Set frattale Fractal Whirl , Vortice frattale Fractured Clouds , Nuvole fratturate Fragment Blur , Sfocatura del frammento Frame (px) , Telaio (px) Frame [Blur] , Telaio [Sfocatura] Frame [Cube] , Telaio [Cube] Frame [Fuzzy] , Telaio [Fuzzy] Frame [Mirror] , Telaio [Specchio] Frame [Painting] , Telaio [Pittura] Frame [Pattern] , Telaio [Modello] Frame [Regular] , Telaio [Regolare] Frame [Round] , Telaio [Rotondo] Frame [Smooth] , Telaio [liscio] Frame as a New Layer , Telaio come nuovo strato Frame Color , Colore del telaio Frame Files Format , Formato dei file frame Frame Format , Formato del telaio Frame Size , Dimensione del telaio Frame Skip , Salto del telaio Frame Type , Tipo di telaio Frame Width , Larghezza del telaio Frames , Cornici Frames Offset , Offset di cornici Freaky B&W , B&N bizzarro Freaky Details , Dettagli stravaganti Freeze , Congelare French Comedy , Commedia francese Frequency , Frequenza Frequency (%) , Frequenza (%) Frequency Analyzer , Analizzatore di frequenza Frequency Range , Gamma di frequenza Freqy Pattern , Modello Freqy Friends Hall of Fame , Amici Hall of Fame From Input , Da ingresso From Reference Color , Dal colore di riferimento Frosted , Glassato Frosted Beach Picnic , Picnic sulla spiaggia ghiacciata Fruits , Frutta Fuji FP-100c +++ , Fuji FP-100c ++++ Fuji FP-100c Negative , Fuji FP-100c Negativo Fuji FP-100c Negative + , Fuji FP-100c Negativo + Fuji FP-100c Negative ++ , Fuji FP-100c Negativo ++ Fuji FP-100c Negative +++ , Fuji FP-100c Negativo ++++ Fuji FP-100c Negative ++a , Fuji FP-100c Negativo ++a Fuji FP-100c Negative - , Fuji FP-100c negativo - Fuji FP-100c Negative -- , Fuji FP-100c negativo -- Fuji FP-3000b +++ , Fuji FP-3000b ++++ Fuji FP-3000b Negative , Fuji FP-3000b negativo Fuji FP-3000b Negative + , Fuji FP-3000b Negativo + Fuji FP-3000b Negative ++ , Fuji FP-3000b Negativo ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Negativo ++++ Fuji FP-3000b Negative - , Fuji FP-3000b negativo - Fuji FP-3000b Negative -- , Fuji FP-3000b negativo -- Fuji FP-3000b Negative Early , Fuji FP-3000b negativo precocemente Full , Completo Full (Allows Multi-Layers) , Completo (consente di utilizzare più strati) Full (Slower) , Pieno (più lento) Full Colors , Colori completi Full HD Frame Packing , Imballaggio Full HD Frame Packing Full Layer Stack -Slow!- , Strato completo di pile -Lenta! Full Side by Side Keep Uncompressed , Completo fianco a fianco Mantenere non compresso Full Side by Side Keep Width , Larghezza di mantenimento completo fianco a fianco Full Side by Uncompressed , Full Side di Uncompressed Fusion 88 , Fusione 88 Futuristic Bleak 1 , Futuristico Bleak 1 Futuristic Bleak 2 , Futuristico Bleak 2 Futuristic Bleak 3 , Futuristico Bleak 3 Futuristic Bleak 4 , Futuristico Bleak 4 G'MIC Operator , Operatore G'MIC G/M Smoothness , G/M scorrevolezza Gain , Guadagnare Games & Demos , Giochi e demo Gamma Balance , Equilibrio Gamma Gamma Compensation , Compensazione gamma Gamma Equalizer , Equalizzatore gamma Gaussian , Gaussiano Gear , Ingranaggi Generate Random-Colors Layer , Genera strato di colori casuali Generic Fuji Astia 100 , Generico Fuji Astia 100 Generic Fuji Provia 100 , Generico Fuji Provia 100 Generic Fuji Velvia 100 , Generico Fuji Velvia 100 Generic Kodachrome 64 , Generico Kodachrome 64 Generic Kodak Ektachrome 100 VS , Generico Kodak Ektachrome 100 VS Generic Skin Structure , Generico Struttura della pelle Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Modalità Gentle (ignora la luminosità minima e il rapporto Rosso Minimo:Blu) Geometry , Geometria Global , Globale Global Mapping , Mappatura globale Gmicky & Wilber (by Mahvin) , Gmicky & Wilber (di Mahvin) Gmicky (by Deevad) , Gmicky (di Deevad) Gmicky (by Mahvin) , Gmicky (di Mahvin) Going for a Walk , Andare a fare una passeggiata Gold , Oro Golden , Oro Golden (bright) , Dorato (brillante) Golden (fade) , Dorato (dissolvenza) Golden (mono) , Oro (mono) Golden (vibrant) , Dorato (vibrante) Golden Sony 37 , Sony d'oro 37 GoldFX - Bright Spring Breeze , GoldFX - Brezza primaverile brillante GoldFX - Bright Summer Heat , GoldFX - Calore estivo brillante GoldFX - Hot Summer Heat , GoldFX - Caldo caldo estivo GoldFX - Perfect Sunset 01min , GoldFX - Tramonto perfetto 01min GoldFX - Perfect Sunset 05min , GoldFX - Tramonto perfetto 05min GoldFX - Perfect Sunset 10min , GoldFX - Tramonto perfetto 10min GoldFX - Spring Breeze , GoldFX - Brezza di Primavera GoldFX - Summer Heat , GoldFX - Calore estivo Good Morning , Buongiorno GradienNormLinearity , GradienNormLinearità Gradient , Gradiente Gradient [Corners] , Gradiente [Angoli] Gradient [Custom Shape] , Gradiente [Forma personalizzata] Gradient [from Line] , Gradiente [da Line] Gradient [Linear] , Gradiente [Lineare] Gradient [Radial] , Gradiente [Radiale] Gradient [Random] , Gradiente [Casuale] Gradient Norm , Norma di Gradiente Gradient Preset , Gradiente Preset Gradient RGB , Gradiente RGB Gradient Smoothness , Gradiente scorrevolezza Gradient Values , Valori gradienti Grain , Grano Grain (Highlights) , Grano (In evidenza) Grain (Midtones) , Grano (Midtones) Grain (Shadows) , Grano (Ombre) Grain Extract , Estratto di grano Grain Merge , Fusione di grani Grain Only , Solo cereali Grain Scale , Bilancia a grani Grain Tone Fading , Sbiadimento del tono del grano Grain Type , Tipo di grano Granularity , Granularità Graphic Boost , Boost Grafico Graphic Colours , Colori grafici Graphic Novel , Romanzo grafico Graphix Colors , Colori Graphix Grayscale , Scala di grigi Greece , Grecia Green , Verde Green 15 , Verde 15 Green 2025 , Verde 2025 Green Action , Azione verde Green Afternoon , Pomeriggio verde Green Blues , Blues verde Green Conflict , Conflitto verde Green Day 01 , Giorno verde 01 Green Day 02 , Giorno verde 02 Green Factor , Fattore verde Green G09 , Verde G09 Green Indoor , Verde Indoor Green Level , Livello verde Green Light , Luce verde Green Mono , Verde Mono Green Rotations , Rotazioni verdi Green Shift , Turno verde Green Smoothness , Verde Liscio come l'olio Green Wavelength , Lunghezza d'onda verde Green Yellow , Verde Giallo Green-Blue , Verde-Blu Green-Red , Verde-Rosso Greenish Contrasty , Contrasto verdastro Greenish Fade , Dissolvenza verdastra Greenish Fade 1 , Dissolvenza verdastra 1 Grey , Grigio Greyscale , Scala di grigi Grid , Griglia Grid [Cartesian] , Griglia [cartesiana] Grid [Hexagonal] , Griglia [esagonale] Grid [Triangular] , Griglia [Triangolare] Grid Divisions , Divisioni della griglia Grid Smoothing , Lisciatura della griglia Grid Width , Larghezza della griglia Gritty , Grintoso Grow Alpha , Crescere Alfa Guide As , Guida Come Guide Mix , Guida Mix Guide Recovery , Guida al recupero Gum Leaf , Foglia di gomma Gummy , Gommoso H Cutoff , H Taglio Hair Locks , Serrature per capelli HaldCLUT Filename , HaldCLUT Nome del file Half Bottom/top , Metà fondo/sopra Half Side by Side , Fianco a fianco Halftone , Mezzitoni Halftone Shapes , Forme mezzitoni Hanoi Tower , Torre di Hanoi Happyness 133 , Felicità 133 Hard Dark , Duro scuro Hard Light , Luce dura Hard Sketch , Schizzo duro Hard Teal Orange , Alzavola dura Arancione Harsh Day , Giornata difficile Harsh Sunset , Duro tramonto HDR Effect (Tone Map) , Effetto HDR (Mappa del tono) Heart , Cuore Hearts , Cuori Hearts (Outline) , Cuori (Schema) Hedcut (Experimental) , Hedcut (Sperimentale) Height , Altezza Height (%) , Altezza (%) Hexagon , Esagono Hexagonal , Esagonale High , Alto High (Slower) , Alto (più lento) High Frequency , Alta frequenza High Frequency Layer , Strato ad alta frequenza High Key , Chiave alta High Pass , Passaporto alto High Quality , Alta qualità High Scale , Scala alta High Speed , Alta velocità High Value , Alto valore Higher Mask Threshold (%) , Soglia della maschera più alta (%) Highlight , Evidenziare Highlight (%) , Evidenziare (%) Highlight Bloom , Evidenziare Bloom Highlights , In evidenza Highlights Abstraction , In evidenza l'astrazione Highlights Brightness , Evidenzia la luminosità Highlights Color Intensity , Evidenzia l'intensità del colore Highlights Crossover Point , In evidenza Crossover Point Highlights Hue , Caratteristiche principali Tonalità Highlights Lightness , Evidenzia la leggerezza Highlights Protection , Evidenzia la protezione Highlights Selection , Selezione dei punti salienti Highlights Threshold , Soglia in evidenza Highlights Zone , Zone in evidenza Highres CLUT , CLUT ad alta risoluzione Histogram , Istogramma Histogram Analysis , Analisi dell'istogramma Histogram Transfer , Trasferimento dell'istogramma Hokusai: The Great Wave , Hokusai: La Grande Onda Homogeneity , Omogeneità Hope Poster , Poster della speranza Horisontal Length , Lunghezza orizzontale Horizon Leveling (deg) , Livellamento all'orizzonte (deg) Horizontal , Orizzontale Horizontal (%) , Orizzontale (%) Horizontal Amount , Importo orizzontale Horizontal Array , Array orizzontale Horizontal Blur , Sfocatura orizzontale Horizontal Length , Lunghezza orizzontale Horizontal Size (%) , Dimensione orizzontale (%) Horizontal Stripes , Strisce orizzontali Horizontal Tiles , Piastrelle orizzontali Horizontal Warp Only , Solo ordito orizzontale Horror Blue , Horror Blu Hot , Caldo Hot (256) , Caldo (256) Hough Sketch , Schizzo di Hough Hough Transform , Trasformazione del ramo House , Casa Householder , Proprietario di casa HSI [all] , HSI [tutti] HSI [Intensity] , HSI [Intensità] HSL [all] , HSL [tutti] HSL [Lightness] , HSL [Leggerezza] HSL Adjustment , Regolazione HSL HSV [all] , HSV [tutti] HSV [Hue] , HSV [Tinta] HSV [Saturation] , HSV [Saturazione] HSV [Value] , HSV [Valore] HSV Select , HSV Seleziona Hue , Tinta Hue (%) , Tonalità (%) Hue Band , Tinta Band Hue Factor , Fattore di tinta Hue Lighten-Darken , Tinta Alleggerisci-Schiarisci-Schiarisci Hue Max (%) , Tinta Max (%) Hue Min (%) , Tinta Min (%) Hue Offset , Tinta Offset Hue Range , Gamma di tinte Hue Shift , Spostamento della tonalità Hue Smoothness , Tonalità L'uniformità della tinta Human 2 , Umano 2 Human 1 , Umano 1 Human 2 , Umano 2 Hybrid Median - Medium Speed Softest Output , Mediana ibrida - Uscita morbida a media velocità Hyper Droste , Iper Droste Hypnosis , Ipnosi Iain Noise Reduction 2019 , Iain Riduzione del rumore 2019 Iain's Fast Denoise , Lain's Fast Denoise Identity , Identità Ignore , Ignora Ignore Current Aspect , Ignora l'aspetto corrente Illuminate 2D Shape , Illuminate la forma 2D Illumination , Illuminazione Illustration Look , Illustrazione Guarda Image , Immagine Image + Background , Immagine + Sfondo Image + Colors (2 Layers) , Immagine + colori (2 strati) Image + Colors (Multi-Layers) , Immagine + colori (Multi-Layers) Image Contour Dimensions , Dimensioni del contorno dell'immagine Image Smoothness , Immagine scorrevolezza Image to Grab Color from (.Png) , Immagine per prendere il colore da (.Png) Image Weight , Peso dell'immagine Import Data , Importazione dei dati Import RGB-565 File , Importare il file RGB-565 Impulses 5x5 , Impulsi 5x5 Impulses 7x7 , Impulsi 7x7 Impulses 9x9 , Impulsi 9x9 Inch , Pollici Include Opacity Layer , Includere lo strato di opacità Increasing , Aumentare Indoor Blue , Blu interno Industrial 33 , Industriale 33 Influence of Color Samples (%) , Influenza dei campioni di colore (%) Information , Informazioni Init. Resolution , Init. Risoluzione Init. Type , Init. Tipo Init. With High Gradients Only , Init. Solo con gradienti alti Initial Density , Densità iniziale Initialization , Inizializzazione Ink Wash , Lavaggio a inchiostro Inner , Interno Inner Fading , Dissolvenza interna Inner Length , Lunghezza interna Inner Radius , Raggio interno Inner Radius (%) , Raggio interno (%) Inner Shade , Ombra interna Inpaint [Holes] , Vernice [Fori] Inpaint [Morphological] , Vernice [Morfologica] Inpaint [Multi-Scale] , Vernice [Multi-scala] Inpaint [Patch-Based] , Verniciatura [Patch-Based] Inpaint [Transport-Diffusion] , Vernice [Trasportazione-diffusione] Input , Ingresso Input Folder , Cartella di ingresso Input Frame Files Name , Nome del file del fotogramma in ingresso Input Guide Color , Guida all'ingresso Colore Input Layers , Strati di ingresso Input Transparency , Trasparenza degli input Input Type , Tipo di ingresso Insert New CLUT Layer , Inserire il nuovo strato CLUT Inside , All'interno Inside Color , Colore interno Inside-Out , Dentro-Esterno Instant [Consumer] (54) , Istante [Consumatore] (54) Instant [Pro] (68) , Istantanea [Pro] (68) Intensity , Intensità Intensity of Purple Fringe , Intensità della frangia viola Inter-Frames , Inter-Frame Interlace Horizontal , Interlacciamento orizzontale Interlace Vertical , Intreccio verticale Interpolation , Interpolazione Interpolation Type , Tipo di interpolazione Inverse , Inversa Inverse Depth Map , Mappa profondità inversa Inverse Radius , Raggio inverso Inverse Transform , Trasformazione inversa Inversions , Inversioni Invert Background / Foreground , Invertire lo sfondo / Primo piano Invert Blur , Invertire la sfocatura Invert Canvas Colors , Invertire i colori della tela Invert Colors , Invertire i colori Invert Image Colors , Invertire i colori delle immagini Invert Luminance , Invertire la luminanza Invert Mask , Invertire la maschera Isophotes , Isofotografie Isotropic , Isotropo Iteration , Iterazione Iterations , Iterazioni Japanese Maple Leaf , Foglia d'acero giapponese Jet (256) , Getto (256) JPEG Artefacts , Artefatti JPEG JPEG Smooth , JPEG Liscio Just Peachy , Solo Peachy K-Factor , Fattore K K-Tone Vintage Kodachrome , K-Tone Kodachrome d'epoca Kaleidoscope [Blended] , Caleidoscopio [Blended] Kaleidoscope [Polar] , Caleidoscopio [Polare] Kaleidoscope [Symmetry] , Caleidoscopio [Simmetria] Kandinsky: Squares with Concentric Circles , Kandinsky: Quadrati con cerchi concentrici Kandinsky: Yellow-Red-Blue , Kandinsky: Giallo-Rosso-Blu Keep , Conservare Keep Aspect Ratio , Mantenere il rapporto di aspetto Keep Base Layer as Input Background , Mantenere lo strato di base come sfondo di ingresso Keep Borders Square , Mantenere la piazza dei confini Keep Color Channels , Mantenere i canali di colore Keep Colors , Conservare i colori Keep Detail , Conservare il dettaglio Keep Detail Layer Separate , Tenere separato lo strato di dettaglio Keep Iterations as Different Layers , Mantenere le iterazioni come strati diversi Keep Layers Separate , Mantenere gli strati separati Keep Original Image Size , Mantenere la dimensione originale dell'immagine Keep Original Layer , Mantenere lo strato originale Keep Tiles Square , Mantenere la piazza delle piastrelle Keep Transparency in Output , Mantenere la trasparenza nella produzione Kernel Multiplier , Moltiplicatore del kernel Kernel Type , Tipo di kernel Key Factor , Fattore chiave Key Frame Rate , Frame rate chiave Key Shift , Spostamento dei tasti Key Smoothness , Principale scorrevolezza Keypoint Influence (%) , Influenza dei punti chiave (%) Klee: Death and Fire , Klee: Morte e fuoco Klee: In the Style of Kairouan , Klee: Nello stile di Kairouan Klee: Polyphony 2 , Klee: Polifonia 2 Klee: Red Waistcoat , Klee: Gilet rosso Klimt: The Kiss , Klimt: Il bacio Kuwahara on Painting , Kuwahara sulla pittura Kyler Holland (10) , Kyler Olanda (10) Lab , Laboratorio Lab (Chroma Only) , Laboratorio (solo croma) Lab (Distinct) , Laboratorio (Distinto) Lab (Luma Only) , Laboratorio (Solo Luma) Lab (Luma/Chroma) , Laboratorio (Luma/Chroma) Lab (Mixed) , Laboratorio (Misto) Lab [a-Chrominance] , Laboratorio [a-Chrominance] Lab [ab-Chrominances] , Laboratorio [ab-Crominanze] Lab [all] , Laboratorio [tutti] Lab [b-Chrominance] , Laboratorio [b-Crominanza] Lab [Lightness] , Laboratorio [Leggerezza] Landscape , Paesaggio Landscape-1 , Paesaggio-1 Landscape-10 , Paesaggio-10 Landscape-2 , Paesaggio-2 Landscape-3 , Paesaggio-3 Landscape-4 , Paesaggio-4 Landscape-5 , Paesaggio-5 Landscape-6 , Paesaggio-6 Landscape-7 , Paesaggio-7 Landscape-8 , Paesaggio-8 Landscape-9 , Paesaggio-9 Laplacian , Laplaciano Large , Grande Large Noise , Rumore grande Last , Ultimo Last Frame , Ultimo fotogramma Late Afternoon Wanderlust , Voglia di passeggiare nel tardo pomeriggio Late Sunset , Tramonto tardivo Lava Lamp , Lampada di lava Layer , Strato Layer Processing , Elaborazione dello strato Layers to Tiles , Strati a Piastrelle Lch [all] , Lch [tutti] Lch [c-Chrominance] , Lch [c-Crominanza] Lch [ch-Chrominances] , Lch [ch-Crominanze] Lch [h-Chrominance] , Lch [h-Crominanza] Leaf , Foglia Leaf Color , Colore della foglia Leaf Opacity (%) , Opacità della foglia (%) Leak Type , Tipo di perdita Left , A sinistra Left Foreground , Primo piano a sinistra Left / Right Blur (%) , Sfocatura sinistra / destra (%) Left and Right Background , Sfondo sinistro e destro Left and Right Foreground , Primo piano a sinistra e a destra Left and Right Image Streams , Flussi di immagini a sinistra e a destra Left Diagonal Foreground , Primo piano diagonale a sinistra Left Foreground , Primo piano a sinistra Left Position , Posizione di sinistra Left Side Orientation , Orientamento a sinistra Left Slope , Pendenza a sinistra Left Stream Only , Solo flusso a sinistra Length , Lunghezza Lenticular Density LPI , Densità lenticolare LPI Lenticular Orientation , Orientamento lenticolare Lenticular Print , Stampa lenticolare Level , Livello Level Frequency , Livello Frequenza Levels , Livelli Life Giving Tree , Albero della vita Lifestyle & Commercial-1 , Stile di vita e commerciale-1 Lifestyle & Commercial-10 , Stile di vita e commerciale-10 Lifestyle & Commercial-2 , Stile di vita e commerciale-2 Lifestyle & Commercial-3 , Stile di vita e commerciale-3 Lifestyle & Commercial-4 , Stile di vita e commerciale-4 Lifestyle & Commercial-5 , Stile di vita e commerciale-5 Lifestyle & Commercial-6 , Stile di vita e commerciale-6 Lifestyle & Commercial-7 , Stile di vita e commerciale-7 Lifestyle & Commercial-8 , Stile di vita e commerciale-8 Lifestyle & Commercial-9 , Stile di vita e commerciale - 9 Light , Luce Light (blown) , Luce (soffiato) Light Angle , Angolo di luce Light Color , Colore della luce Light Direction , Direzione della luce Light Effect , Effetto luce Light Glow , Bagliore luminoso Light Grey , Grigio chiaro Light Leaks , Perdite di luce Light Motive , Motivo della luce Light Patch , Toppa di luce Light Rays , Raggi di luce Light Smoothness , Leggera scorrevolezza Light Strength , Forza della luce Light Type , Tipo di luce Lighten , Alleggerisci Lighten Edges , Alleggerire i bordi Lighter , Accendino Lighting , Illuminazione Lighting Angle , Angolo di illuminazione Lightness , Leggerezza Lightness (%) , Leggerezza (%) Lightness Factor , Fattore di leggerezza Lightness Level , Livello di leggerezza Lightness Max (%) , Leggerezza Max (%) Lightness Min (%) , Leggerezza Min (%) Lightness Shift , Spostamento della luminosità Lightness Smoothness , Leggerezza Lussureggiante Lightning , Fulmine Lighty Smooth , Leggero Liscio Limit Hue Range , Gamma di tonalità limite Line , Linea Line Opacity , Opacità della linea Line Precision , Precisione di linea Linear , Lineare Linear Burn , Bruciatura lineare Linear Light , Luce lineare Linear RGB , RGB lineare Linear RGB [All] , RGB lineare [Tutti] Linear RGB [Blue] , RGB lineare [Blu] Linear RGB [Green] , RGB lineare [Verde] Linear RGB [Red] , RGB lineare [Rosso] Linearity , Linearità Lineart + Color Spots , Lineart + macchie di colore Lineart + Color Spots + Extrapolated Colors , Lineart + macchie di colore + colori estrapolati Lineart + Colors , Lineart + Colori Lineart + Extrapolated Colors , Lineart + colori estrapolati Lines , Linee Lines (256) , Linee (256) Lion , Leone Lissajous [Animated] , Lissajous [Animato] Lissajous Spiral , Spirale di Lissajous Little , Piccolo Little Blue , Piccolo Blu Little Cyan , Il piccolo Ciano Little Green , Piccolo verde Little Key , Piccola chiave Little Magenta , Il piccolo Magenta Little Red , Piccolo rosso Little Yellow , Piccolo Giallo LN Amplititude , LN Amplificazione LN Amplitude , LN Ampiezza LN Average-Smoothness , LN Media-levigatezza LN Size , Dimensione LN Local Normalisation , Normalizzazione locale Local Contrast , Contrasto locale Local Contrast Effect , Effetto di contrasto locale Local Contrast Enhance , Miglioramento del contrasto locale Local Contrast Enhancement , Miglioramento del contrasto locale Local Contrast Style , Stile di contrasto locale Local Detail Enhancer , Miglioratore di dettaglio locale Local Normalization , Normalizzazione locale Local Orientation , Orientamento locale Local Processing , Elaborazione locale Local Similarity Mask , Maschera di somiglianza locale Local Variance Normalization , Normalizzazione delle varianti locali Lock Return Scaling to Source Layer , Bloccare la scala di ritorno al livello di origine Lock Source , Bloccare la fonte Lock Uniform Sampling , Bloccare il campionamento uniforme Logarithmic Distortion , Distorsione logaritmica Logarithmic Distortion Axis Combination for X-Axis , Combinazione di assi di distorsione logaritmica per l'asse X Logarithmic Distortion Axis Combination for Y-Axis , Combinazione di assi di distorsione logaritmica per l'asse Y Logarithmic Distortion X-Axis Direction , Distorsione logaritmica Direzione asse X Logarithmic Distortion Y-Axis Direction , Distorsione logaritmica Direzione asse Y Lookup , Cerca su Lookup Factor , Fattore di ricerca Lookup Size , Dimensione di ricerca Loop Method , Metodo del ciclo Low , Basso Low Bias , Bassa polarizzazione Low Contrast Blue , Blu a basso contrasto Low Frequency , Bassa frequenza Low Frequency Layer , Strato a bassa frequenza Low Key , Tasto basso Low Key 01 , Tasto basso 01 Low Scale , Scala bassa Low Value , Basso valore Lower Layer Is the Bottom Layer for All Blends , Lo strato inferiore è lo strato inferiore per tutte le miscele Lower Mask Threshold (%) , Soglia inferiore della maschera (%) Lower Side Orientation , Orientamento laterale inferiore Lowercase Letters , Lettere minuscole Lowlights Crossover Point , Punto di incrocio dei fari bassi Lucky 64 , Fortunato 64 Luma Noise , Rumore di Luma Luminance , Luminanza Luminance Factor , Fattore di luminanza Luminance Level , Livello di luminanza Luminance Only , Solo luminanza Luminance Only (Lab) , Solo luminanza (laboratorio) Luminance Only (YCbCr) , Solo luminanza (YCbCr) Luminance Shift , Spostamento di luminanza Luminance Smoothness , Luminanza Levigatezza Luminosity from Color , Luminosità da Colore Luminosity Type , Tipo di luminosità Lush Green Summer , Estate verde e rigogliosa LUTs Pack , Pacchetto LUTs Lylejk's Painting , La pittura di Lylejk Magenta Coffee , Caffè Magenta Magenta Day , Giorno di Magenta Magenta Day 01 , Magenta Giorno 01 Magenta Dream , Sogno Magenta Magenta Factor , Fattore Magenta Magenta Smoothness , Levigatezza magenta Magenta Yellow , Giallo magenta Magenta-Yellow , Magenta-giallo Magic Details , Dettagli magici Magnitude / Phase , Magnitudine / Fase Mail , Posta Make Hue Depends on Region Size , La tonalità dipende dalla dimensione della regione Make Seamless [Diffusion] , Fare senza soluzione di continuità [Diffusione] Make Seamless [Patch-Based] , Fare senza soluzione di continuità [Patch-Based] Make Squiggly , Fai Squiggly Make Up , Trucco Manual , Manuale Manual Controls , Controlli manuali Map , Mappa Map Tones , Toni della mappa Mapping , Mappatura Marble , Marmo Margin (%) , Margine (%) Mascot Image , Mascotte Immagine Masculine , Maschile Mask , Maschera Mask + Background , Maschera + Sfondo Mask as Bottom Layer , Maschera come strato inferiore Mask By , Maschera di Mask Color , Colore della maschera Mask Contrast , Contrasto della maschera Mask Creator , Creatore di maschere Mask Dilation , Dilatazione della maschera Mask Size , Dimensione della maschera Mask Smoothness (%) , Levigatezza della maschera (%) Mask Type , Tipo di maschera Masked Image , Immagine mascherata Masking , Mascheramento MasterOpacity , MasterOpacità Match Colors With , Abbina i colori con Matching Precision (Smaller Is Faster) , Precisione di corrispondenza (più piccolo è più veloce) Math Symbols , Simboli matematici Matrix , Matrice Max Angle , Angolo massimo Max Angle Deviation (deg) , Deviazione massima dell'angolo (deg) Max Area , Area massima Max Curve , Curva massima Max Cut (%) , Taglio massimo (%) Max Iterations , Iterazioni massime Max Length (%) , Lunghezza massima (%) Max Offset (%) , Offset massimo (%) Max Radius , Raggio massimo Max Threshold , Soglia massima Maximal Area , Area massima Maximal Color Saturation , Saturazione massima del colore Maximal Highlights , Massima evidenza Maximal Radius , Raggio massimo Maximal Seams per Iteration (%) , Cuciture massime per ogni iterazione (%) Maximal Size , Dimensione massima Maximal Value , Valore massimo Maximum , Massimo Maximum Dimension , Dimensione massima Maximum Image Size , Dimensione massima dell'immagine Maximum Number of Image Colors , Numero massimo di colori dell'immagine Maximum Number of Output Layers , Numero massimo di strati di uscita Maximum Red:Blue Ratio in the Fringe , Rapporto massimo Rosso:Blu nella frangia Maximum Saturation , Saturazione massima Maximum Size Factor , Fattore di dimensione massima Maximum Value , Valore massimo Maze , Labirinto Maze Type , Tipo di labirinto Mean Color , Colore medio Mean Curvature , Curvatura media Median , Mediana Median (beware: Memory-Consuming!) , Mediana (attenzione: Consumo di memoria!) Median Radius , Raggio mediano Medium , Medio Medium 3 , Medio 3 Medium Details Smoothness , Medio Dettagli Liscio Medium Details Threshold , Medio Dettagli Soglia Medium Frequency Layer , Strato a media frequenza Medium Scale (Original) , Scala media (originale) Medium Scale (Smoothed) , Scala media (levigato) Memories , Ricordi Merge Brightness / Colors , Unire Luminosità / Colori Merge Layers? , Unire gli strati? Merging Mode , Modalità di fusione Merging Option , Opzione di fusione Merging Steps , Fasi di fusione Mess with Bits , Giochi con i bit Metal , Metallo Metallic Look , Look metallico Method , Metodo Metric , Metrico Micro/macro Details Adjusted , Dettagli Micro/macro regolati Mid , Metà Mid Grey , Grigio medio Mid Noise , Rumore medio Mid Offset , Offset medio Mid Tone Contrast , Contrasto di tono medio Mid-Dark Grey , Grigio scuro Mid-Light Grey , Grigio Medio-Luce Middle Grey , Grigio Medio Middle Scale , Scala media Midtones Brightness , Midtones Luminosità Midtones Color Intensity , Intensità del colore dei mezzitoni Midtones Hue , Tonalità Midtones Mighty Details , Dettagli Min Angle Deviation (deg) , Deviazione minima dell'angolo (deg) Min Area % , Area min. Min Cut (%) , Taglio minimo (%) Min Length (%) , Lunghezza minima (%) Min Offset (%) , Offset minimo (%) Min Radius , Raggio minimo Min Threshold , Soglia minima Mineral Mosaic , Mosaico minerale Minesweeper , Spazzacamino Minimal Area , Area minima Minimal Area (%) , Area minima (%) Minimal Color Intensity , Intensità di colore minima Minimal Path , Percorso minimo Minimal Radius , Raggio minimo Minimal Region Area , Area geografica minima Minimal Scale (%) , Scala minima (%) Minimal Shape Area , Area di forma minima Minimal Size , Dimensione minima Minimal Size (%) , Dimensione minima (%) Minimal Stroke Length , Lunghezza minima della corsa Minimal Value , Valore minimo Minimalist Caffeination , Caffeinazione minimalista Minimum , Minimo Minimum Brightness , Luminosità minima Minimum Red:Blue Ratio in the Fringe , Rapporto minimo Rosso:Blu nella frangia Mirror , Specchio Mirror Effect , Effetto Specchio Mirror X , Specchio X Mirror Y , Specchio Y Mirror-X , Specchio-X Mirror-XY , Specchio-XY Mixed Mode , Modo misto Mixer [CMYK] , Miscelatore [CMYK] Mixer [HSV] , Miscelatore [HSV] Mixer [Lab] , Miscelatore [Lab] Mixer [PCA] , Miscelatore [PCA] Mixer [RGB] , Miscelatore [RGB] Mixer [YCbCr] , Miscelatore [YCbCr] Mixer Mode , Modalità Mixer Mixer Style , Stile Mixer Mode , Modalità Modern Film , Film moderno Modulo Value , Modulo Valore Moiré Animation , Moiré Animazione Moire Removal , Rimozione di Moire Moire Removal Method , Metodo di rimozione della moiré Mona Lisa , Monna Lisa Mondrian: Composition in Red-Yellow-Blue , Mondrian: Composizione in rosso-giallo-blu Mondrian: Evening; Red Tree , Mondrian: Sera; Albero Rosso Mondrian: Gray Tree , Mondrian: Albero grigio Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore al crepuscolo Monet: Water-Lily Pond , Monet: Stagno delle ninfee Monet: Wheatstacks - End of Summer , Monet: Pagliacci di grano - Fine estate Monkey , Scimmia Mono Tinted , Mono Tinto Mono+Ye , Mono+Sì Mono-Directional , Mono-Direzionale Monochrome , Monocromatico Monochrome 1 , Monocromatico 1 Monochrome 2 , Monocromatico 2 Montage , Montaggio Montage Type , Tipo di montaggio Moonlight 01 , Chiaro di luna 01 Morning 6 , Mattina 6 Morph [Interactive] , Morph [Interattivo] Morph Layers , Strati morfici Morphological - Fastest Sharpest Output , Morfologico - Uscita più veloce e più nitida Morphological Closing , Chiusura morfologica Morphological Filter , Filtro morfologico Morphology Painting , Morfologia Pittura Morphology Strength , Morfologia Forza Mosaic , Mosaico Most , La maggior parte Mostly Blue , Per lo più blu Motion Analyzer , Analizzatore di movimento Motion-Compensated , Compensati dal movimento Much , Molto Much Blue , Molto blu Much Green , Molto verde Much Red , Molto rosso Multi-Layer Etch , Acquaforte a più strati Multiple Colored Shapes Over Transp. BG , Forme multiple colorate su Transp. BG Multiple Layers , Strati multipli Multiplier , Moltiplicatore Multiply , Moltiplicare Multiscale Operator , Operatore multiscala Munch: The Scream , Munch: L'urlo Muted 01 , Silenzioso 01 Muted Fade , Dissolvenza silenziosa Mystic Purple Sunset , Tramonto Mistico Viola Name , Nome Natural (vivid) , Naturale (vivido) Nature & Wildlife-1 , Natura e fauna selvatica-1 Nature & Wildlife-10 , Natura e fauna selvatica-10 Nature & Wildlife-2 , Natura e fauna selvatica-2 Nature & Wildlife-3 , Natura e fauna selvatica-3 Nature & Wildlife-4 , Natura e fauna selvatica-4 Nature & Wildlife-5 , Natura e fauna selvatica-5 Nature & Wildlife-6 , Natura e fauna selvatica6 Nature & Wildlife-7 , Natura e fauna selvatica-7 Nature & Wildlife-8 , Natura e fauna selvatica-8 Nature & Wildlife-9 , Natura e fauna selvatica-9 Nb Circles Surrounding , Nb Circoli circostanti Near Black , Vicino al Nero Nearest , Il più vicino Nearest Neighbor , Vicino più vicino Neat Merge , Fusione ordinata Nebulous , Nebuloso Negate , Negare Negation , Negazione Negative , Negativo Negative [Color] (13) , Negativo [Colore] (13) Negative [New] (39) , Negativo [Nuovo] (39) Negative [Old] (44) , Negativo [Vecchio] (44) Negative Color Abstraction , Astrazione del colore negativo Negative Colors , Colori negativi Negative Effect , Effetto negativo Neighborhood Size (%) , Dimensioni del quartiere (%) Neighborhood Smoothness , Quartiere Smoothness Neon Lightning , Fulmini al neon Neutral Color , Colore neutro Neutral Teal Orange , Alzavola neutra arancione Neutral Warm Fade , Neutro Caldo Dissolvenza New Curves [Interactive] , Nuove curve [Interattivo] Newspaper , Giornale Newton Fractal , Newton Frattale Night 01 , Notte 01 Night Blade 4 , Lama da notte 4 Night From Day , Notte dal giorno Night King 141 , Notte Re 141 Night Spy , Spia notturna Nine Layers , Nove strati No Masking , No Mascheramento No Recovery , Nessun recupero No Rescaling , Nessun ridimensionamento No Transparency , Nessuna trasparenza Noise , Rumore Noise [Additive] , Rumore [Additivo] Noise [Perlin] , Rumore [Perlin] Noise [Spread] , Rumore [Diffusione] Noise A , Rumore A Noise B , Rumore B Noise C , Rumore C Noise D , Rumore D Noise Level , Livello di rumore Noise Scale , Scala del rumore Noise Type , Tipo di rumore Non-Linearity , Non linearità Non-Rigid , Non-Rigido None , Nessuno None (Allows Multi-Layers) , Nessuno (Consente Multi-Layers) None- Skip , None- Salta Norm Type , Tipo di norma Normal , Normale Normal Map , Mappa normale Normal Output , Uscita normale Normalization , Normalizzazione Normalize , Normalizzare Normalize Brightness , Normalizzare la luminosità Normalize Colors , Normalizzare i colori Normalize Illumination , Normalizzare l'illuminazione Normalize Input , Normalizzare l'ingresso Normalize Luma , Normalizzare Luma Normalize Scales , Normalizzare le scale Nostalgia Honey , Nostalgia Miele Nostalgic , Nostalgico Nothing , Niente Number , Numero Number of Added Frames , Numero di fotogrammi aggiunti Number of Angles , Numero di angoli Number of Clusters , Numero di cluster Number of Colors , Numero di colori Number of Frames , Numero di fotogrammi Number of Inter-Frames , Numero di Inter-Frame Number of Iterations per Scale , Numero di iterazioni per scala Number of Key-Frames , Numero di fotogrammi chiave Number of Levels , Numero di livelli Number of Matches (Coarsest) , Numero di partite (più grossolano) Number of Matches (Finest) , Numero di partite (Finest) Number of Orientations , Numero di Orientamenti Number Of Rays , Numero di raggi Number of Scales , Numero di Bilance Number of Sizes , Numero di dimensioni Number of Streaks , Numero di strisce Number of Teeth , Numero di denti Number of Tones , Numero di toni Object Animation , Animazione dell'oggetto Object Ratio , Rapporto oggetto Object Tolerance , Tolleranza dell'oggetto Octagon , Ottagono Octagonal , Ottagonale Octaves , Ottave Oddness (%) , Stranezza (%) Offset Angle Rays Layer 1 , Offset Angolo Raggi Offset Layer 1 Offset Angle Rays Layer 2 , Offset Angolo Raggi Offset Layer 2 Old Method - Slowest , Vecchio metodo - Il più lento Old Photograph , Vecchia fotografia Old West , Vecchio West Old-Movie Stripes , Strisce di vecchi film ON1 Photography (90) , ON1 Fotografia (90) Once Upon a Time , C'era una volta One Layer , Uno strato One Layer (Horizontal) , Uno strato (orizzontale) One Layer (Vertical) , Uno strato (verticale) One Layer per Single Color , Uno strato per ogni singolo colore One Layer per Single Region , Un solo strato per singola regione One Thread , Un filo Only Leafs , Solo Foglie Only Red , Solo rosso Only Red and Blue , Solo rosso e blu Opacity , Opacità Opacity (%) , Opacità (%) Opacity as Heightmap , Opacità come mappa delle altezze Opacity Contours , Contorni di opacità Opacity Factor , Fattore di opacità Opacity Gain , Guadagno di opacità Opacity Gamma , Opacità Gamma Opacity Snowflake , Opacità Fiocco di neve Opacity Threshold (%) , Soglia di opacità (%) Opaque Pixels , Pixel opachi Opaque Regions on Top Layer , Regioni opache sullo strato superiore Opaque Skin , Pelle opaca Open Interactive Preview , Apri l'intervista interattiva Opening , Apertura Operation Yellow , Operazione Giallo Operator , Operatore Opposing , Contrariamente a Optimized Lateral Inhibition , Inibizione laterale ottimizzata Orange Dark 4 , Arancione scuro 4 Orange Dark 7 , Arancione scuro 7 Orange Dark Look , Arancione scuro Orange Tone , Tono arancione Orange Underexposed , Arancione Sottoesposto Oranges , Arance Order , Ordine Order By , Ordina per Orientation , Orientamento Orientation Coherence , Coerenza di orientamento Orientation Only , Solo orientamento Orientations , Orientamenti Original , Originale Original - (Opening + Closing)/2 , Originale - (Apertura + Chiusura)/2 Original - Erosion , Originale - Erosione Original - Opening , Originale - Apertura Orthogonal Radius , Raggio ortogonale Others (69) , Altri (69) Ouline Color , Colore Oulina Outer , Esterno Outer Fading , Dissolvenza esterna Outer Length , Lunghezza esterna Outer Radius , Raggio esterno Outline (%) , Schema (%) Outline Color , Colore del contorno Outline Contrast , Contorno Contrasto Outline Opacity , Opacità del contorno Outline Size , Dimensione del contorno Outline Smoothness , Contorno Liscio come l'olio Outline Thickness , Spessore del contorno Outlined , In evidenza Output , Uscita Output As , Uscita come Output as Files , Output come file Output as Frames , Uscita come Frame Output as Multiple Layers , Uscita come strati multipli Output as Separate Layers , Uscita come strati separati Output Ascii File , Uscita File Ascii Output Chroma NR , Uscita Chroma NR Output CLUT , Uscita CLUT Output CLUT Resolution , Risoluzione CLUT in uscita Output Coordinates File , File delle coordinate di uscita Output Corresponding CLUT , Uscita corrispondente CLUT Output Directory , Elenco delle uscite Output Each Piece on a Different Layer , Uscita ogni pezzo su un diverso strato Output Filename , Nome del file in uscita Output Files , File di output Output Folder , Cartella di uscita Output Format , Formato di uscita Output Frames , Cornici di uscita Output Height , Altezza di uscita Output HTML File , File HTML in uscita Output Layers , Strati di uscita Output Mode , Modalità di uscita Output Multiple Layers , Uscita a più strati Output Preset as a HaldCLUT Layer , Uscita preimpostata come strato HaldCLUT Output Region Delimiters , Delimitatori della regione di uscita Output Saturation , Saturazione dell'uscita Output Sharpening , Affilatura in uscita Output Stroke Layer On , Corsa in uscita Layer On Output to Folder , Uscita alla cartella Output Type , Tipo di uscita Output Width , Larghezza di uscita Outside , Fuori Outside Color , Colore esterno Outward , Verso l'esterno Overall Blur , Sfocatura globale Overall Contrast , Contrasto complessivo Overall Lightness , Leggerezza complessiva Overlap (%) , Sovrapposizione (%) Overlay , Sovrapposizione Overshoot , Sovrascatto Padding (px) , Imbottitura (px) Paint , Dipingere Paint Daub , Dipingere Daub Paint Effect , Effetto vernice Paint Splat , Vernice Splat Painter's Edge Protection Flow , Flusso di protezione del bordo del pittore Painter's Smoothness , La levigatezza del pittore Painter's Touch Sharpness , Nitidezza del tocco del pittore Painting , Pittura Painting Opacity , Opacità della pittura Paladin , Paladino Paladin 1875 , Paladino 1875 Paper Texture , Struttura della carta Parallel Processing , Elaborazione parallela Parrots , Pappagalli Passing By , Passando Pastell Art , Arte pastello Patch Measure , Misura della toppa Patch Size , Dimensione della toppa Patch Size for Analysis , Dimensione della toppa per l'analisi Patch Size for Synthesis , Dimensione della patch per la sintesi Patch Size for Synthesis (Final) , Patch Size per la sintesi (finale) Patch Smoothness , Lisciozza della toppa Patch Variance , Varianza delle toppe Pattern , Modello Pattern Angle , Angolo del modello Pattern Height , Altezza del modello Pattern Type , Tipo di modello Pattern Variation 1 , Modello Variazione 1 Pattern Variation 2 , Variazione di modello 2 Pattern Variation 3 , Variazione di modello 3 Pattern Weight , Peso del modello Pattern Width , Larghezza del modello Paw , Zampa PCA Transfer , Trasferimento PCA Pea Soup , Zuppa di piselli Pen Drawing , Disegno a penna Penalize Patch Repetitions , Penalizzare le ripetizioni di patch Pencil , Matita Pencil Amplitude , Ampiezza della matita Pencil Portrait , Ritratto a matita Pencil Size , Dimensione matita Pencil Smoother Edge Protection , Matita più liscia Protezione del bordo della matita Pencil Smoother Sharpness , Matita più liscia e nitida Pencil Smoother Smoothness , Matita più liscia liscia Pencil Type , Tipo di matita Pencils , Matite Pentagon , Pentagono Peppers , Peperoni Percent of Image Half-Hypotenuse (%) , Percentuale di mezza ipotenusa dell'immagine (%) Periodic , Periodico Periodic Dots , Puntini periodici Periodicity , Periodicità Perserve Luminance , Perservare la luminanza Perspective , Prospettiva Perturbation , Perturbazione Petals , Petali Phase , Fase Phone , Telefono PhotoComix Preset , Preset PhotoComix Photoillustration , Fotoillustrazione Picasso: Seated Woman , Picasso: Donna seduta Picasso: The Reservoir - Horta De Ebro , Picasso: Il serbatoio - Horta De Ebro PictureFX (19) , ImmagineFX (19) Piece Complexity , Complessità del pezzo Piece Size (px) , Dimensione del pezzo (px) Pin Light , Spinotto Luce Pink Fade , Dissolvenza rosa Pixel Sort , Tipo di pixel Pixel Values , Valori dei pixel Placement , Posizionamento Plane , Aereo Plasma Effect , Effetto plasma Plot Type , Tipo di appezzamento Point #0 , Punto n. 0 Point #1 , Punto n. 1 Point #2 , Punto n. 2 Point #3 , Punto 3 Point 1 , Punto 1 Point 2 , Punto 2 Points , Punti Polar Transform , Trasformazione polare Polaroid 665 Negative , Polaroid 665 Negativo Polaroid 665 Negative + , Polaroid 665 Negativo + Polaroid 665 Negative - , Polaroid 665 Negativo - Polaroid 665 Negative HC , Polaroid 665 HC negativo Polaroid 669 +++ , Polaroid 669 ++++ Polaroid 669 Cold , Polaroid 669 a freddo Polaroid 690 Warm , Polaroid 690 Caldo Polaroid 690 Warm ++ , Polaroid 690 Caldo ++ Polaroid Polachrome , Polachrome polaroid Polaroid PX-100UV+ Cold , Polaroid PX-100UV+ a freddo Polaroid PX-100UV+ Cold + , Polaroid PX-100UV+ freddo + Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ freddo ++ Polaroid PX-100UV+ Cold +++ , Polaroid PX-100UV+ a freddo ++++ Polaroid PX-100UV+ Cold - , Polaroid PX-100UV+ a freddo - Polaroid PX-100UV+ Cold -- , Polaroid PX-100UV+ a freddo -- Polaroid PX-100UV+ Warm , Polaroid PX-100UV+ Caldo Polaroid PX-100UV+ Warm + , Polaroid PX-100UV+ Caldo + Polaroid PX-100UV+ Warm ++ , Polaroid PX-100UV+ Caldo ++ Polaroid PX-100UV+ Warm +++ , Polaroid PX-100UV+ Caldo ++++ Polaroid PX-100UV+ Warm - , Polaroid PX-100UV+ Caldo - Polaroid PX-100UV+ Warm -- , Polaroid PX-100UV+ Caldo -- Polaroid PX-680 Warm , Polaroid PX-680 Caldo Polaroid PX-680 Warm ++ , Polaroid PX-680 Caldo ++ Polaroid PX-70 +++ , Polaroid PX-70 ++++ Polaroid PX-70 Warm , Polaroid PX-70 Caldo Polaroid PX-70 Warm ++ , Polaroid PX-70 Caldo ++ Polaroid Time Zero (Expired) , Polaroid Time Zero (Scaduto) Polaroid Time Zero (Expired) + , Polaroid Time Zero (scaduto) + Polaroid Time Zero (Expired) ++ , Polaroid Time Zero (scaduto) ++ Polaroid Time Zero (Expired) - , Polaroid Time Zero (scaduto) - Polaroid Time Zero (Expired) -- , Polaroid Time Zero (scaduto) -- Polaroid Time Zero (Expired) --- , Polaroid Time Zero (scaduto) --- Polaroid Time Zero (Expired) Cold , Polaroid Time Zero (scaduto) a freddo Polaroid Time Zero (Expired) Cold - , Polaroid Time Zero (scaduto) a freddo - Polaroid Time Zero (Expired) Cold -- , Polaroid Time Zero (scaduto) a freddo -- Polaroid Time Zero (Expired) Cold --- , Polaroid Time Zero (scaduto) a freddo --- Pole Lat , Polo Lat Pole Long , Polo lungo Pole Rotation , Rotazione del palo Polka Dots , Puntini a polka Pollock: Convergence , Pollock: Convergenza Pollock: Summertime Number 9A , Pollock: Estate numero 9A Polygonize [Delaunay] , Poligonare [Delaunay] Polygonize [Energy] , Poligonare [Energia] Pop Shadows , Ombre Pop Portrait , Ritratto Portrait Retouching , Ritocco di ritratti Portrait-1 , Ritratto-1 Portrait-2 , Ritratto-2 Portrait-3 , Ritratto-3 Portrait-4 , Ritratto-4 Portrait-5 , Ritratto-5 Portrait-6 , Ritratto-6 Portrait-7 , Ritratto-7 Portrait-8 , Ritratto-8 Portrait-9 , Ritratto-9 Portrait0 , Ritratto0 Portrait1 , Ritratto1 Portrait10 , Ritratto10 Portrait2 , Ritratto2 Portrait3 , Ritratto3 Portrait4 , Ritratto4 Portrait5 , Ritratto5 Portrait6 , Ritratto6 Portrait7 , Ritratto7 Portrait8 , Ritratto8 Portrait9 , Ritratto9 Position , Posizione Position X (%) , Posizione X (%) Position X Origin (%) , Posizione X Origine (%) Position Y (%) , Posizione Y (%) Position Y Origin (%) , Posizione Y Origine (%) Positive , Positivo Post-Normalize , Post-Normalizzare Post-Process , Post-Processo Poster Edges , Bordi dei poster Posterization Antialiasing , Posterizzazione Antialiasing Posterization Level , Livello di posterizzazione Posterize , Posterizza Posterized Dithering , Dithering posterizzato Power , Potenza Pre-Defined , Predefinito Pre-Defined Colormap , Colormap predefiniti Pre-Normalize , Pre-Normalizzare Pre-Normalize Image , Pre-Normalizzare l'immagine Pre-Process , Pre-processo Precision , Precisione Precision (%) , Precisione (%) Preliminary Surface Shift , Spostamento di superficie preliminare Preliminary X-Axis Scaling , Scalatura preliminare dell'asse X Preliminary Y-Axis Scaling , Scalatura preliminare dell'asse Y Preprocessor Power , Potenza del preprocessore Preprocessor Radius , Raggio del preprocessore Preserve Canvas for Post Bump Mapping , Conservare la tela per la mappatura degli urti Preserve Edges , Conservare i bordi Preserve Image Dimension , Conservare la dimensione dell'immagine Preserve Initial Brightness , Conservare la luminosità iniziale Preserve Luminance , Conservare la luminanza Preview , Anteprima Preview All Outputs , Anteprima di tutte le uscite Preview Bands , Anteprima Bande Preview Brush , Anteprima Pennello Preview Data , Anteprima dati Preview Detected Shapes , Anteprima forme rilevate Preview Frame Selection , Anteprima della selezione del telaio Preview Gradient , Anteprima Gradiente Preview Grain Alone , Anteprima Grano da solo Preview Grid , Anteprima Griglia Preview Guides , Anteprima Guide Preview Mapping , Anteprima Mappatura Preview Mask , Maschera di anteprima Preview Only Shadow , Anteprima solo ombra Preview Opacity (%) , Anteprima Opacità (%) Preview Original , Anteprima originale Preview Precision , Anteprima Precisione Preview Progress (%) , Anteprima Progressi (%) Preview Progression While Running , Anteprima Progressione durante l'esecuzione Preview Ref Point , Anteprima Ref Point Preview Reference Circle , Anteprima Cerchio di riferimento Preview Selection , Anteprima selezione Preview Shape , Anteprima Forma Preview Shows , Anteprima Preview Split , Anteprima Split Preview Subsampling , Anteprima Sottocampionamento Preview Time , Tempo di anteprima Preview Tones Map , Anteprima Toni Mappa Preview Type , Tipo di anteprima Preview Without Alpha , Anteprima senza Alpha Primary Angle , Angolo primario Primary Color , Colore primario Primary Factor , Fattore primario Primary Gamma , Gamma primaria Primary Radius , Raggio primario Primary Shift , Turno primario Primary Twist , Torsione primaria Print Adjustment Marks , Stampa Marchi di regolazione Print Films (12) , Pellicole di stampa (12) Print Frame Numbers , Numeri del telaio di stampa Print Size Unit , Unità di misura per la stampa Print Size Width , Dimensione di stampa Larghezza Privacy Notice , Avviso sulla privacy Probability Map , Mappa delle probabilità Procedural , Procedurale Process As , Processo Come Process by Blocs of Size , Processo per blocchi di dimensioni Process Channels Individually , Canali di processo individuali Process Top Layer Only , Solo strato superiore del processo Process Transparency , Trasparenza del processo Processing Mode , Modalità di elaborazione Propagation , Propagazione Proportion , Proporzione Protanomaly , Protanomalia Protect Highlights 01 , Proteggere i punti salienti 01 Prussian Blue , Blu di Prussia Pseudo-Gray Dithering , Dithering pseudo-grigio Purple , Viola Purple11 (12) , Viola11 (12) Pyramid , Piramide Pyramid Processing , Elaborazione della piramide Pythagoras Tree , Albero di Pitagora Quadrangle , Quadrangolo Quadtree Variations , Variazioni dei quadrupedi Quality , Qualità Quality (%) , Qualità (%) Quantization , Quantizzazione Quantize Colors , Colori Quantize Quasi-Gaussian , Quasi-Gaussiano Quick , Veloce Quick Copyright , Copyright rapido Quick Enlarge , Ingrandisci rapidamente R/B Smoothness (Principal) , R/B scorrevolezza (Principale) R/B Smoothness (Secondary) , R/B scorrevolezza (secondario) Radial , Radiale Radius , Raggio Radius (%) , Raggio (%) Radius / Angle , Raggio / Angolo Radius [Manual] , Raggio [Manuale] Radius Cut , Raggio di taglio Radius Middle Circle , Raggio Cerchio centrale Radius Outer Circle A (>0 W%) (<0 H%) , Raggio Cerchio esterno A (>0 W%) (<0 H%) Rain & Snow , Pioggia e neve Raindrops , Gocce di pioggia Random , Casuale Random [non-Transparent] , Casuale [non-trasparente] Random Angle , Angolo casuale Random Color Ellipses , Ellissi di colore casuale Random Colors , Colori casuali Random Seed , Seme casuale Random Shade Stripes , Strisce d'ombra casuali Randomness , Casualità Range , Gamma Ratio , Rapporto Raw , Crudo Rays , Raggi Rays Colors AB , Raggi Colori AB Rays Colors ABC , Raggi Colori ABC Rays Colors ABCD , Raggi Colori ABCD Rays Colors ABCDE , Raggi Colori ABCDE Rays Colors ABCDEF , Raggi Colori ABCDEF Rays Colors ABCDEFG , Raggi Colori ABCDEFG Rebuild From Similar Blocs , Ricostruire da blocchi simili Recompose , Ricomporre Reconstruct From Previous Frames , Ricostruire dai fotogrammi precedenti Recover , Recupera Recover Highlights , Recupera i punti salienti Recover Shadows , Recuperare le ombre Recovery , Recupero Rectangle , Rettangolo Recursion Depth , Profondità di ricorsione Recursions , Ricorrenze Recursive Median , Mediana ricorsiva Red , Rosso Red - Green - Blue , Rosso - Verde - Blu Red - Green - Blue - Alpha , Rosso - Verde - Blu - Alfa Red Afternoon 01 , Pomeriggio rosso 01 Red Blue Yellow , Rosso Blu Giallo Red Chroma Factor , Fattore di croma rosso Red Chroma Shift , Spostamento del croma rosso Red Chroma Smoothness , Rosso Croma Levigatezza Red Chrominance , Crominanza rossa Red Day 01 , Giorno rosso 01 Red Dream 01 , Sogno rosso 01 Red Factor , Fattore rosso Red Level , Livello Rosso Red Rotations , Rotazioni rosse Red Shift , Spostamento rosso Red Smoothness , Rosso Lisciozza Red Wavelength , Lunghezza d'onda rossa Red-Eye Attenuation , Attenuazione occhi rossi Red-Green , Rosso-verde Reds , Rosso Reds Oranges Yellows , Arance rosse Arance gialle Reduce Halos , Ridurre gli aloni Reduce Noise , Ridurre il rumore Reduce RAM , Ridurre la RAM Reduce Redness , Ridurre la riduzione Reference , Riferimento Reference Angle (deg.) , Angolo di riferimento (gradi) Reference Color , Colore di riferimento Reference Colors , Colori di riferimento Reflect , Rifletti Reflection , Riflessione Refraction , Rifrazione Regular Grid , Griglia regolare Regularity , Regolarità Regularity (%) , Regolarità (%) Regularization , Regolarizzazione Regularization (%) , Regolarizzazione (%) Regularization Factor , Fattore di regolarizzazione Regularization Iterations , Iterazioni di regolarizzazione Reject , Rifiuta Rejected Colors , Colori rifiutati Rejected Mask , Maschera respinta Relative Block Count , Conteggio dei blocchi relativi Relative Size , Dimensione relativa Relative Warping , Orditura relativa Release Notes , Note di rilascio Relief , Rilievo Relief Amplitude , Ampiezza del rilievo Relief Contrast , Rilievo Contrasto Relief Light , Luce a rilievo Relief Size , Dimensione del rilievo Relief Smoothness , Rilievo Levigatezza Remove Artifacts From Micro/Macro Detail , Rimuovere gli artefatti da Micro/Macro Detail Remove Hot Pixels , Rimuovere i pixel caldi Remove Tile , Rimuovere la piastrella Render Multiple Frames , Renderizzare più fotogrammi Render on Dark Areas , Render su aree buie Render on White Areas , Render su aree bianche Render Routine for Wiggle Animations , Routine di rendering per le animazioni Wiggle Rendering Mode , Modalità di rendering Repair Scanned Document , Riparazione del documento scansionato Repeat , Ripetere Repeat [Memory Consuming!] , Ripetere [Consumo di memoria!] Repeats , Ripetizioni Replace , Sostituire Replace (Sharpest) , Sostituire (più nitido) Replace Layer with CLUT , Sostituire lo strato con CLUT Replace Source by Target , Sostituire la fonte con l'obiettivo Replace With White , Sostituire con il bianco Replaced Color , Colore sostituito Replacement Color , Colore di ricambio Reptile , Rettile Reset View , Ripristina vista Resize Image for Optimum Effect , Ridimensionare l'immagine per un effetto ottimale Resolution , Risoluzione Resolution (%) , Risoluzione (%) Resolution (px) , Risoluzione (px) Rest 33 , Riposo 33 Result Image , Risultato Immagine Result Type , Tipo di risultato Resynthetize Texture [FFT] , Sintetizzare la trama [FFT]. Resynthetize Texture [Patch-Based] , Sintetizzare la texture [Patch-Based]. Retouch Layer , Ritocco strato Retouched and Sharpened Areas , Aree ritoccate e affilate Retouched Areas Only , Solo aree ritoccate Retouched Image , Immagine ritoccata Retouched Image Basic , Immagine ritoccata Basic Retouched Image Final , Immagine ritoccata finale Retouching Style , Stile di fotoritocco Retro , Retrò Retro Brown 01 , Retrò marrone 01 Retro Fade , Dissolvenza retrò Retro Magenta 01 , Magenta retrò 01 Retro Summer 3 , Estate retrò 3 Retro Yellow 01 , Retrò Giallo 01 Return Scaling , Scala di ritorno Reverse Bits , Bit inversi Reverse Bytes , Byte inversi Reverse Effect , Effetto inverso Reverse Endianness , Endiannità inversa Reverse Flip , Capovolgimento inverso Reverse Gradient , Gradiente invertito Reverse Mod , Mod. retromarcia Reverse Motion , Inversione del movimento Reverse Order , Ordine inverso Reverse Pow , Polvere inversa Reversing , Inversione Revert Layer Order , Invertire l'ordine dei livelli Revert Layers , Invertire gli strati RGB [All] , RGB [Tutti] RGB [Blue] , RGB [Blu] RGB [Green] , RGB [Verde] RGB [red] , RGB [rosso] RGB Image + Binary Mask (2 Layers) , Immagine RGB + maschera binaria (2 strati) RGB Quantization , Quantizzazione RGB RGB Tone , Tono RGB RGBA [All] , RGBA [Tutti] RGBA [Alpha] , RGBA [Alfa] RGBA Foreground + Background (2 Layers) , RGBA Primo piano + sfondo (2 strati) RGBA Image (Full-Transparency / 1 Layer) , Immagine RGBA (Trasparenza completa / 1 livello) RGBA Image (Updatable / 1 Layer) , Immagine RGBA (aggiornabile / 1 livello) Rice , Riso Right , A destra Right Diagonal Foreground , Primo piano diagonale destro Right Diagonal Foreground , Primo piano diagonale destro Right Eye View , Vista dall'occhio destro Right Foreground , Primo piano a destra Right Position , Posizione corretta Right Side Orientation , Orientamento a destra Right Slope , Pendenza a destra Right Stream Only , Solo Stream Right Stream Rigid , Rigido Ripple , Ondulazione Roddy (by Mahvin) , Roddy (di Mahvin) Rodilius [Animated] , Rodilio [Animato] Rollei Retro 80s , Rollei Retro anni '80 Rooster , Gallo Rose , Rosa Rotate , Ruota Rotate (muted) , Ruotare (silenzioso) Rotate (vibrant) , Ruotare (vibrante) Rotate 180 Deg. , Ruotare di 180 gradi. Rotate 270 Deg. , Ruotare di 270 gradi. Rotate 90 Deg. , Ruotare di 90 gradi. Rotate Hue Bands , Ruotare le bande di tonalità Rotate Tree , Ruotare l'albero Rotated , Ruotato Rotated (crush) , Ruotato (schiacciamento) Rotations , Rotazioni Roundness , Rotondità Row by Row , Fila per Fila RYB [All] , RYB [Tutti] RYB [Blue] , RYB [Blu] RYB [Red] , RYB [Rosso] RYB [Yellow] , RYB [Giallo] S-Curve Contrast , Contrasto della curva a S Salt and Pepper , Sale e pepe Same as Input , Uguale a Input Same Axis , Stesso asse Sample Image , Immagine campione Sampling , Campionamento Sat Bottom , Fondo Sat Sat Range , Gamma Sat Satin , Raso Saturated Blue , Blu saturo Saturation , Saturazione Saturation (%) , Saturazione (%) Saturation Channel Gamma , Canale di saturazione Gamma Saturation Correction , Correzione della saturazione Saturation EQ , Saturazione EQ Saturation Factor , Fattore di saturazione Saturation Offset , Offset di saturazione Saturation Shift , Saturazione Saturation Smoothness , Saturazione L'uniformità della saturazione Save CLUT as .Cube or .Png File , Salva CLUT come file .Cube o .Png Save Gradient As , Salva gradiente come Saving Private Damon , Salvataggio del soldato Damon Scalar , Scalare Scale , Scala Scale (%) , Scala (%) Scale 1 , Scala 1 Scale 2 , Scala 2 Scale CMYK , Scala CMYK Scale Factor , Fattore di scala Scale Output , Scala di uscita Scale Plasma , Scala al plasma Scale RGB , Scala RGB Scale Style to Fit Target Resolution , Stile di scala per adattarsi alla risoluzione del bersaglio Scale Variations , Variazioni di scala Scaled , In scala Scales , Bilancia Scaling Factor , Fattore di scala Scene Selector , Selettore di scena Science Fiction , Fantascienza Screen , Schermo Screen Border , Schermo Confine Seamless Deco , Deco senza soluzione di continuità Seamless Turbulence , Turbolenza senza soluzione di continuità Second Color , Secondo colore Second Offset , Secondo offset Second Radius , Secondo raggio Second Size , Seconda dimensione Secondary Color , Colore secondario Secondary Factor , Fattore secondario Secondary Gamma , Gamma secondaria Secondary Radius , Raggio secondario Secondary Shift , Turno secondario Secondary Twist , Torsione secondaria Sectors , Settori Seed , Seme Segment Max Length (px) , Lunghezza massima del segmento (px) Segmentation , Segmentazione Segmentation Edge Threshold , Soglia di segmentazione del bordo Segmentation Smoothness , Segmentazione Levigatezza della segmentazione Segments , Segmenti Segments Strength , Segmenti Forza Select By , Seleziona per Select-Replace Color , Seleziona-Sostituisci colore Selected Color , Colore selezionato Selected Colors , Colori selezionati Selected Frame , Telaio selezionato Selected Mask , Maschera selezionata Selection , Selezione Selective Desaturation , Desaturazione selettiva Selective Gaussian , Gaussiano selettivo Self Glitching , Autoscalfittura Self Image , Immagine di sé Sensitivity , Sensibilità Sepia , Seppia Sequence X4 , Sequenza X4 Sequence X6 , Sequenza X6 Sequence X8 , Sequenza X8 Serial Number , Numero di serie Serpent , Serpente Set Aspect Only , Imposta solo l'aspetto Set Frame Format , Imposta il formato del telaio Seven Layers , Sette strati Seventies Magazine , Rivista Seventies Shade , Ombra Shade Angle , Angolo d'ombra Shade Back to First Color , Ombra Torna al primo colore Shade Strength , Forza dell'ombra Shading , Ombreggiatura Shading (%) , Ombreggiatura (%) Shadow , Ombra Shadow Contrast , Contrasto d'ombra Shadow Intensity , Intensità dell'ombra Shadow King 39 , Re delle ombre 39 Shadow Offset X , Ombra Offset X Shadow Offset Y , Ombra Offset Y Shadow Patch , Ombra Patch Shadow Size , Dimensione dell'ombra Shadow Smoothness , Ombra Levigatezza Shadows , Ombre Shadows Abstraction , Astrazione delle Ombre Shadows Brightness , Ombre Luminosità Shadows Color Intensity , Ombre Intensità del colore Shadows Hue Shift , Spostamento della tonalità delle ombre Shadows Lightness , Ombre Leggerezza Shadows Selection , Selezione delle ombre Shadows Threshold , Soglia delle ombre Shadows Zone , Zona d'ombra Shape , Forma Shape Area Max , Area di forma Max Shape Area Max0 , Area di forma Max0 Shape Area Min , Forma Area Min Shape Area Min0 , Area di forma Min0 Shape Average , Forma Media Shape Average0 , Forma Media0 Shape Max , Forma Max Shape Max0 , Forma Max0 Shape Median , Forma Mediana Shape Median0 , Forma Mediana0 Shape Min , Forma Min Shape Min0 , Forma Min0 Shapes , Forme Sharp Abstract , Astratto affilato Sharpen , Affilare Sharpen [Deblur] , Affilare [Deblur] Sharpen [Gold-Meinel] , Affilare [Gold-Meinel] Sharpen [Gradient] , Affilare [Gradiente] Sharpen [Hessian] , Affilare [Assia] Sharpen [Inverse Diffusion] , Affilare [Diffusione inversa] Sharpen [Multiscale] , Affilare [Multiscala] Sharpen [Octave Sharpening] , Affilare [Affilatura dell'ottava] Sharpen [Shock Filters] , Affilare [Filtri d'urto] Sharpen [Texture] , Affilare [Texture] Sharpen [Tones] , Affilare [Toni] Sharpen [Unsharp Mask] , Affilare [Maschera non affilata] Sharpen [Whiten] , Affilare [Sbiancare] Sharpen Details in Preview , Affila i dettagli in Anteprima Sharpen Edges Only , Affilare solo i bordi Sharpen Object , Affilare l'oggetto Sharpen Radius , Raggio d'azione Sharpen Shades , Affilare le sfumature Sharpened Areas Only , Solo aree affilate Sharpening , Affilatura Sharpening Layer , Strato di affilatura Sharpening Radius , Raggio di affilatura Sharpening Strength , Forza di affilatura Sharpening Type , Tipo di affilatura Sharpness , Nitidezza Shift Linear Interpolation? , Interpolazione lineare a turni? Shift Point , Punto di spostamento Shift X , Spostamento X Shift Y , Spostamento Y Shivers , Brividi Shock Waves , Onde d'urto Shopping Cart , Carrello Show Both Poles , Mostra entrambi i poli Show Difference , Mostra la differenza Show Frame , Mostra telaio Show Grid , Mostra griglia Show Watershed , Mostra spartiacque Shuffle Pieces , Shuffle Pezzi Side by Side , Fianco a fianco Sierpinski Triangle , Triangolo di Sierpinski Silver , Argento Similarity Space , Spazio di somiglianza Simple Local Contrast , Semplice contrasto locale Simple Noise Canvas , Tela semplice per il rumore Simulate Film , Simulare il film Sin(z) , Peccato(z) Sine+ , Seno+ Single (Merged) , Singola (Fusa) Single Custom Depth Map , Singola mappa di profondità personalizzata Single Image Stereogram , Stereogramma a immagine singola Single Layer , Singolo strato Single Opaque Shapes Over Transp. BG , Forme opache singole su Trasp. BG Six Layers , Sei strati Sixteen Threads , Sedici fili Size , Dimensione Size (%) , Dimensione (%) Size for Bright Tones , Dimensione per i toni luminosi Size for Dark Tones , Dimensione per i toni scuri Size of Frame Numbers (%) , Dimensione dei numeri di telaio (%) Size Variance , Varianza di dimensione Size-1 , Dimensione-1 Size-2 , Misura-2 Size-3 , Dimensione-3 Skeleton , Scheletro Sketch , Schizzo Skin Estimation , Stima della pelle Skin Mask , Maschera di pelle Skin Tone Colors , Colori della pelle Skin Tone Mask , Maschera del tono della pelle Skin Tone Protection , Protezione del tono della pelle Skip All Other Steps , Salta tutti gli altri passi Skip Finest Scales , Salta le scale più fini Skip Others Steps , Salta altri passi Skip This Step , Salta questo passo Skip to Use the Mask to Boost , Salta per usare la maschera per potenziare Slice Luminosity , Luminosità a fette Slide [Color] (26) , Diapositiva [Colore] (26) Slow (Accurate) , Lento (Accurato) Slow Recovery , Recupero lento Small , Piccolo Small (Faster) , Piccolo (Più veloce) Smart Contrast , Contrasto intelligente Smart Threshold , Soglia intelligente Smooth , Liscio Smooth [Anisotropic] , Liscio [Anisotropo] Smooth [Antialias] , Liscio [Antialias] Smooth [Bilateral] , Liscio [Bilaterale] Smooth [Block PCA] , Liscio [Blocco PCA] Smooth [Diffusion] , Liscio [Diffusione] Smooth [Geometric-Median] , Liscio [Geometrico-Mediano] Smooth [Guided] , Liscio [Guidato] Smooth [IUWT] , Liscio [IUWT] Smooth [Mean-Curvature] , Liscio [Curvatura media] Smooth [Median] , Liscio [Mediano] Smooth [NL-Means] , Liscio [NL-Means] Smooth [Patch-Based] , Liscio [Patch-Based] Smooth [Patch-PCA] , Liscio [Patch-PCA] Smooth [Perona-Malik] , Liscio [Perona-Malik] Smooth [Selective Gaussian] , Liscio [Gaussiano selettivo] Smooth [Skin] , Liscio [Pelle] Smooth [Thin Brush] , Liscio [Spazzola sottile] Smooth [Total Variation] , Liscio [Variazione totale] Smooth [Wavelets] , Liscio [Onde ondulatorie] Smooth [Wiener] , Liscio [Wiener] Smooth Abstract , Astratto liscio Smooth Amount , Importo liscio Smooth Clear , Liscio e chiaro Smooth Colors , Colori lisci Smooth Crome-Ish , Crome-Ish liscio Smooth Dark , Scuro liscio Smooth Fade , Dissolvenza liscia Smooth Green Orange , Verde Liscio Arancione Smooth Light , Luce liscia Smooth Looping , Looping liscio Smooth Only , Solo liscio Smooth Sailing , Vela liscia Smooth Teal Orange , Arancione alzavola liscio Smoothen Background Reconstruction , Lisciare la ricostruzione dello sfondo Smoother Edge Protection , Protezione dei bordi più liscia Smoother Sharpness , Maggiore nitidezza Smoother Softness , Morbidezza più morbida Smoothing , Lisciatura Smoothing Style , Stile lisciante Smoothing Type , Tipo di lisciatura Smoothness , Liscio come l'olio Smoothness (%) , Levigatezza (%) Smoothness (px) , Levigatezza (px) Smoothness Shadow , Ombra di levigatezza Smoothness Type , Tipo di levigatezza Snowflake , Fiocco di neve Snowflake 2 , Fiocco di neve 2 Snowflake Recursion , Ricorsione del fiocco di neve Soft Light , Luce soffusa Soft Burn , Bruciatura morbida Soft Fade , Dissolvenza morbida Soft Glow , Bagliore morbido Soft Glow [Animated] , Bagliore morbido [Animato] Soft Light , Luce soffusa Soft Random Shades , Sfumature casuali morbide Soft Warming , Riscaldamento dolce Soften , Ammorbidire Soften All Channels , Ammorbidire tutti i canali Soften Guide , Ammorbidire la guida Solarize Color , Solarizzare il colore Solarized Color2 , Colore Solarizzato2 Solidify , Solidificare Solve Maze , Risolvere il labirinto Some , Alcuni Some Blue , Un po' di blu Some Cyan , Alcuni ciano Some Green , Un po' di verde Some Key , Alcune chiavi Some Magenta , Alcuni Magenta Some Red , Un po' di rosso Some Yellow , Un po' di giallo Sort Colors , Ordina colori Sorting Criterion , Criterio di ordinamento Source (%) , Fonte (%) Source Color #1 , Colore sorgente #1 Source Color #10 , Colore sorgente #10 Source Color #11 , Colore sorgente #11 Source Color #12 , Colore sorgente #12 Source Color #13 , Colore sorgente #13 Source Color #14 , Colore sorgente #14 Source Color #15 , Colore sorgente #15 Source Color #16 , Colore sorgente #16 Source Color #17 , Colore sorgente #17 Source Color #18 , Colore sorgente #18 Source Color #19 , Colore sorgente #19 Source Color #2 , Colore sorgente #2 Source Color #20 , Colore sorgente #20 Source Color #21 , Colore sorgente #21 Source Color #22 , Colore sorgente #22 Source Color #23 , Colore sorgente #23 Source Color #24 , Colore sorgente #24 Source Color #3 , Colore sorgente #3 Source Color #4 , Colore sorgente #4 Source Color #5 , Colore sorgente #5 Source Color #6 , Colore sorgente #6 Source Color #7 , Colore sorgente #7 Source Color #8 , Colore sorgente #8 Source Color #9 , Colore sorgente #9 Source X-Tiles , Fonte X-Tiles Source Y-Tiles , Fonte Y-Tiles Space , Spazio Spacing , Spaziatura Spatial Bandwidth , Larghezza di banda spaziale Spatial Metric , Metrico spaziale Spatial Overlap , Sovrapposizione spaziale Spatial Precision , Precisione spaziale Spatial Radius , Raggio spaziale Spatial Regularization , Regolarizzazione spaziale Spatial Sampling , Campionamento spaziale Spatial Scale , Scala spaziale Spatial Tolerance , Tolleranza spaziale Spatial Transition , Transizione spaziale Spatial Variance , Varianza spaziale Special Effects , Effetti speciali Specific Saturation , Saturazione specifica Specify Different Output Size , Specificare le diverse dimensioni di uscita Specify HaldCLUT As , Specificare HaldCLUT come Specular , Speculare Specular (%) , Speculare (%) Specular Centering , Centraggio speculare Specular Intensity , Intensità speculare Specular Light , Luce speculare Specular Lightness , Leggerezza speculare Specular Shininess , Lucentezza speculare Specular Size , Dimensione speculare Speed , Velocità Sphere , Sfera Spiral , Spirale Spiral RGB , Spirale RGB Spline Max Angle (deg) , Angolo massimo della scanalatura (gradi) Spline Max Length (px) , Lunghezza massima della scanalatura (px) Spline Roundness , Rotondità della scanalatura Split Base and Detail Output , Dividere la base e l'uscita di dettaglio Split Brightness / Colors , Split Luminosità / Colori Split Details [Alpha] , Dividere i dettagli [Alpha] Split Details [Gaussian] , Dividere i dettagli [Gaussiano] Split Details [Wavelets] , Dettagli di divisione [Wavelets] [Wavelets] Sponge , Spugna Spread , Diffondi Spread Amount , Importo dello spread Spread Angles , Angoli di diffusione Spread Noise Amount , Importo del rumore diffuso Spreading , Diffusione Spring Morning , Primavera Mattina Sprocket 231 , Pignone 231 Spy 29 , Spia 29 Square , Piazza Square (Inv.) , Piazza (Inv.) Square 1 , Piazza 1 Square 2 , Piazza 2 Square to Circle , Da piazza a cerchio Squared-Euclidean , Quadrato euclideo Squares , Piazze Squares (Outline) , Quadrati (Schema) SRGB Conversion , Conversione SRGB Stabilizer , Stabilizzatore Stained Glass , Vetro colorato Stamp , Timbro Standard [No Scan] , Standard [Nessuna scansione] Standard Deviation , Deviazione standard Star , Stella Star: -5*(z^3/3-Z/4)/2 , Stella: -5*(z^3/3-Z/4)/2 Stardust , Polvere di stelle Stars , Stelle Stars (Outline) , Stelle (Contorno) Start Angle , Angolo di partenza Start Color , Inizio Colore Start Frame Number , Numero di telaio di partenza Start of Mid-Tones , Inizio dei toni medi Starting Angle , Angolo di partenza Starting Color , Colore di partenza Starting Feathering , Piuma di partenza Starting Frame , Telaio di partenza Starting Level , Livello di partenza Starting Pattern , Schema di partenza Starting Point , Punto di partenza Starting Point (%) , Punto di partenza (%) Starting Scale (%) , Scala di partenza (%) Starting Value , Valore di partenza Stationary Frames , Cornici stazionarie Std Angle (deg.) , Angolo Std (deg.) Std Branching , Filiale Std Std Length Factor (%) , Fattore di lunghezza Std (%) Std Thickness Factor (%) , Fattore di spessore Std (%) Stencil Type , Tipo di stencil Step , Passo Step (%) , Passo (%) Steps , Passi Stereo Image , Immagine stereo Stereo Window Position , Posizione della finestra stereo Stereographic Projection , Proiezione stereografica Stereoscopic Image Alignment , Allineamento dell'immagine stereoscopica Stereoscopic Window Position , Posizione della finestra stereoscopica Straight , Dritto Strands , Fili Street , Via Strength , Forza Strength (%) , Forza (%) Strength Effect , Effetto di forza Strength Highlights , Punti di forza Strength Midtones , Forza Midtones Strength Shadows , Forza Ombre Stretch , Allungamento Stretch Colors , Colori estensibili Stretch Contrast , Contrasto di allungamento Stretch Factor , Fattore di allungamento Strip , Striscia Stripe Orientation , Orientamento a strisce Stroke , Corsa Stroke Angle , Angolo della corsa Stroke Length , Lunghezza della corsa Stroke Strength , Forza del colpo Strong , Forte Structure Smoothness , Struttura scorrevolezza Style , Stile Style Variations , Variazioni di stile Stylize , Stilizzare Subdivisions , Suddivisioni Subpixel Interpolation , Interpolazione subpixel Subpixel Level , Livello Subpixel Subsampling (%) , Sottocampionamento (%) Subtle Blue , Sottile Blu Subtle Green , Sottile verde Subtle Yellow , Sottile Giallo Subtract , Sottrarre Subtractive , Sottrattivo Summer , Estate Summer (alt) , Estate (alt) Sunny (alt) , Soleggiato (alt) Sunny (rich) , Soleggiato (ricco) Sunny (warm) , Soleggiato (caldo) Super Warm , Super Caldo Super Warm (rich) , Super caldo (ricco) Super-Pixels , Super-Pixel Superimpose with Original? , Sovrapporre l'originale? Surface Disturbance , Disturbo della superficie Surface Disturbance Multiplier , Moltiplicatore di Disturbi di Superficie Swan , Cigno Swap , Scambiare Swap Colors , Scambia colori Swap Layers , Scambiare gli strati Swap Radius / Angle , Raggio di scambio / Angolo Swap Sides , Scambiare i lati Sweet Bubblegum , Gomma da masticare dolce Sweet Gelatto , Gelatto dolce Symmetric 2D Shape , Forma simmetrica 2D Symmetry , Simmetria Symmetry Sides , Fianchi di simmetria Synthesis Scale , Scala di sintesi Tan(z) , Abbronzatura(z) Tangent Radius , Raggio tangente Target Color #1 , Colore target #1 Target Color #10 , Colore target #10 Target Color #11 , Colore target #11 Target Color #12 , Colore target #12 Target Color #13 , Colore target #13 Target Color #14 , Colore target #14 Target Color #15 , Colore target #15 Target Color #16 , Colore target #16 Target Color #17 , Colore target #17 Target Color #18 , Colore target #18 Target Color #19 , Colore target #19 Target Color #2 , Colore target #2 Target Color #20 , Colore target #20 Target Color #21 , Colore target #21 Target Color #22 , Colore target #22 Target Color #23 , Colore target #23 Target Color #24 , Colore target #24 Target Color #3 , Colore target #3 Target Color #4 , Colore target #4 Target Color #5 , Colore target #5 Target Color #6 , Colore target #6 Target Color #7 , Colore target #7 Target Color #8 , Colore target #8 Target Color #9 , Colore target #9 Teal Fade , Dissolvenza alzavola Teal Magenta Gold , Alzavola Magenta Oro Teal Moonlight , Alzavola al chiaro di luna Teal Orange , Arancia alzavola Teal Orange 1 , Alzavola arancione 1 Teal Orange 2 , Alzavola arancione 2 Teal Orange 3 , Alzavola arancione 3 TechnicalFX - Backlight Filter , TechnicalFX - Filtro retroilluminazione Temperature Balance , Bilanciamento della temperatura Ten Layers , Dieci strati Tends to Be Square , Tende ad essere quadrato Tension Green 1 , Tensione Verde 1 Tension Green 2 , Tensione verde 2 Tension Green 3 , Tensione verde 3 Tension Green 4 , Tensione verde 4 Tensor Smoothness , Lisciozza della trazione Tertiary Factor , Fattore terziario Tertiary Gamma , Gamma Terziario Tertiary Shift , Spostamento terziario Tertiary Twist , Torsione terziaria Text , Testo Texture Enhance , Miglioramento della struttura Textured Glass , Vetro strutturato The Game of Life , Il gioco della vita The Matrices , Le matrici Thickness , Spessore Thickness (%) , Spessore (%) Thickness (px) , Spessore (px) Thickness Factor , Fattore di spessore Thin Edges , Bordi sottili Thin Separators , Separatori sottili Thinness , Sottigliezza Thinning , Diradamento Thinning (Slow) , Diradamento (lento) Three Layers , Tre strati Threshold , Soglia Threshold (%) , Soglia (%) Threshold Etch , Incisione della soglia Threshold High , Soglia Alta Threshold Low , Soglia bassa Threshold Max , Soglia Max Threshold Mid , Soglia Media Threshold On , Soglia On Thumbnail Size , Dimensione dell'immagine in miniatura Tiger , Tigre Tile Poles , Pali per piastrelle Tile Size , Dimensione della piastrella Tileable Rotation , Rotazione piastrellabile Tiled Isolation , Isolamento piastrellato Tiled Normalization , Normalizzazione piastrellata Tiled Parameterization , Parametrizzazione piastrellata Tiled Preview , Anteprima piastrellata Tiled Random Shifts , Turni casuali piastrellati Tiled Rotation , Rotazione piastrellata Tiles , Piastrelle Tiles to Layers , Piastrelle a strati Tilt , Inclinazione Time , Tempo Time Step , Passo di tempo Timed Image , Immagine temporizzata Tiny , Piccolo To Equirectangular , A Equirettangolare To Nadir / Zenith , A Nadir / Zenith Toasted Garden , Giardino tostato Toggle to View Base Image , Passa a visualizzare l'immagine di base Tolerance , Tolleranza Tolerance to Gaps , Tolleranza alle lacune Tonal Bandwidth , Larghezza di banda tonale Tone Blur , Sfocatura del tono Tone Enhance , Miglioramento del tono Tone Gamma , Tono Gamma Tone Mapping , Mappatura del tono Tone Mapping (%) , Mappatura del tono (%) Tone Mapping [Fast] , Mappatura del tono [Veloce] Tone Mapping Fast , Mappatura del tono veloce Tone Presets , Preselezioni di tono Tone Threshold , Soglia di tono Tones Range , Gamma di toni Tones Smoothness , Toni morbidezza Tones to Layers , Toni a strati Top Layer , Strato superiore Top Left , In alto a sinistra Top Right , In alto a destra Top-Left Vertex (%) , Vertice in alto a sinistra (%) Top-Right Vertex (%) , Vertice in alto a destra (%) Total Layers , Strati totali Total Variation , Totale Variazione Transfer Colors [Histogram] , Colori di trasferimento [Istogramma] Transfer Colors [Patch-Based] , Colori di trasferimento [Patch-Based] Transfer Colors [PCA] , Colori di trasferimento [PCA] Transfer Colors [Variational] , Colori di trasferimento [variabile] Transform , Trasformare Transition Map , Mappa di transizione Transition Shape , Forma di transizione Transition Smoothness , Transizione scorrevolezza Transmittance Map , Mappa della trasmissione Transparency , Trasparenza Transparent , Trasparente Transparent Background , Sfondo trasparente Transparent Black & White , Bianco e nero trasparente Transparent Color , Colore trasparente Transparent on Black , Trasparente su nero Transparent on White , Trasparente su bianco Transparent Skin , Pelle trasparente Tree , Albero Trent 18 , Trento 18 Triangle , Triangolo Triangles , Triangoli Triangles (Outline) , Triangoli (Schema) Triangular Ha , Ha triangolare Triangular Hb , Triangolare Hb Triangular Va , Va triangolare Triangular Vb , Vb triangolare Tritanomaly , Tritanomalia True Colors 8 , Colori veri 8 Trunk Color , Colore del tronco Trunk Opacity (%) , Opacità del tronco (%) Trunks , Tronchi Tulips , Tulipani Turbulence , Turbolenza Turbulence 2 , Turbolenza 2 Turbulent Halftone , Mezzitoni turbolenti Turkiest 42 , Il più turchese 42 Turn on Rotate and Twirl , Accendere Ruotare e roteare Twisted Rays , Raggi contorti Two Layers , Due strati Two Threads , Due fili Two-By-Two , Due per due Type , Tipo Type Snowflake , Tipo Fiocco di neve Ultra Water , Ultra Acqua UltraWarp++++ , UltraWarp+++++ Unaligned Images , Immagini non allineate Undeniable , Indiscutibile Undeniable 2 , Indiscutibile 2 Underwater , Sott'acqua Undo Anaglyph , Annulla Anaglifo Uniform , Uniforme Unknown , Sconosciuto Unsharp Mask , Maschera non tagliente Up-Left , Su-Sinistra Up-Right , A destra Upper Layer Is the Top Layer for All Blends , Lo strato superiore è lo strato superiore per tutte le miscele Upper Side Orientation , Orientamento lato superiore Uppercase Letters , Lettere maiuscole Upscale [DCCI2x] , In alto [DCCI2x] Upscale [Diffusion] , Alta scala [Diffusione] Upscale [Scale2x] , In alto [Scala2x] Urban Cowboy , Cowboy Urbano Use as Hue , Utilizzo come Tonalità Use as Saturation , Uso come saturazione Use Individual Depth Map , Usa la mappa di profondità individuale Use Light , Utilizzare la luce Use Maximum Tones , Utilizzare i toni massimi Use Top Layer as a Priority Mask , Utilizzare lo strato superiore come maschera di priorità User-Defined , Definito dall'utente User-Defined (Bottom Layer) , Definito dall'utente (strato inferiore) Uzbek Bukhara , Bukhara uzbeco Uzbek Marriage , Matrimonio uzbeco Uzbek Samarcande , Samarcande uzbeco V Cutoff , V Taglio Val Range , Gamma Val Value , Valore Value Action , Azione di valore Value Blending , Miscelazione di valore Value Bottom , Valore in basso Value Correction , Correzione del valore Value Factor , Fattore di valore Value Normalization , Normalizzazione del valore Value Offset , Offset di valore Value Precision , Precisione del valore Value Range , Gamma di valori Value Scale , Scala del valore Value Shift , Spostamento del valore Value Smoothness , Valore Levigatezza Value Top , Valore Top Value Variance , Variazione del valore Values , Valori Van Gogh: Almond Blossom , Van Gogh: Mandorlo in fiore Van Gogh: Irises , Van Gogh: Iris Van Gogh: The Starry Night , Van Gogh: La notte stellata Van Gogh: Wheat Field with Crows , Van Gogh: Campo di grano con i corvi Variability , Variabilità Variance , Varianza Variation A , Variazione A Variation B , Variazione B Variation C , Variazione C Vector Painting , Pittura vettoriale Velocity , Velocità Vertex Type , Tipo di testo Vertical , Verticale Vertical (%) , Verticale (%) Vertical 1 Amount , Verticale 1 Importo Vertical 1 Length , Verticale 1 Lunghezza Vertical 2 Amount , Verticale 2 Importo Vertical 2 Length , Verticale 2 Lunghezza Vertical Amount , Importo verticale Vertical Array , Array verticale Vertical Blur , Sfocatura verticale Vertical Length , Lunghezza verticale Vertical Size (%) , Dimensione verticale (%) Vertical Stripes , Strisce verticali Vertical Tiles , Piastrelle verticali Very Course 5 , Molto Corso 5 Very Fine , Molto bene Very High , Molto alto Very High (Even Slower) , Molto alto (anche più lento) Very Warm Greenish , Molto caldo verdastro Vibrant , Vibrante Vibrant (alien) , Vibrante (alieno) Vibrant (contrast) , Vibrante (contrasto) Vibrant (crome-Ish) , Vibrante (crome-Ish) Victory , Vittoria View Outlines Only , Visualizza solo i contorni View Resolution , Visualizza risoluzione Vignette , Vignetta Vignette Contrast , Vignetta Contrasto Vignette Max Radius , Vignetta Raggio massimo Vignette Min Radius , Vignetta meno raggio Vignette Size , Dimensione della vignetta Vignette Strength , Forza della vignetta Vignette Strenth , Vignetta Strenth Vintage (alt) , Annata (alt) Vintage (brighter) , Vintage (più luminoso) Vintage 163 , Annata 163 Vintage Chrome , Cromo d'epoca Vintage Style , Stile vintage Vintage Tone (%) , Tono d'epoca (%) Vintage Warmth 1 , Calore d'annata 1 Virtual Landscape , Paesaggio virtuale Visible Watermark , Filigrana visibile Vivid Edges , Bordi vivi Vivid Edges* , Bordi vivi* Vivid Light , Luce vivida Vivid Screen , Schermo vivido Wall , Muro Warm , Caldo Warm (highlight) , Caldo (in evidenza) Warm (yellow) , Caldo (giallo) Warm Dark Contrasty , Caldo contrasto scuro Warm Fade , Dissolvenza calda Warm Fade 1 , Dissolvenza calda 1 Warm Neutral , Neutro caldo Warm Sunset Red , Caldo rosso tramonto Warm Teal , Alzavola calda Warm Vintage , Vendemmia calda Warp [Interactive] , Ordito [Interattivo] Warp by Intensity , Ordito per intensità Water , Acqua Waterfall , Cascata Wave , Onda Wave(s) , Onda(e) Wavelength , Lunghezza d'onda Waves Amplitude , Ampiezza delle onde Waves Smoothness , Onde Levigatezza We'll See , Vedremo Weave , Tessitura Weird , Strano Whirl Drawing , Disegno a gorgo Whirls , Vortice White , Bianco White Dices , Dadi bianchi White Layers , Strati bianchi White Level , Livello del bianco White on Black , Bianco su nero White on Transparent , Bianco su trasparente White on Transparent Black , Bianco su nero trasparente White Point , Punto Bianco White to Black , Da bianco a nero White Walls , Pareti bianche Whitening , Sbiancamento Whiter Whites , Bianchi più bianchi Whites , Bianchi Width , Larghezza Width (%) , Larghezza (%) Wind , Vento Winter Lighthouse , Faro d'inverno Wipe , Pulire Without , Senza Wooden Gold 20 , Oro di legno 20 Work on Frameset , Lavoro su Frameset Wrap , Avvolgere X Center , X Centro X-Angle , X-Angolo X-Axis , Asse X X-Axis Then Y-Axis , Asse X e poi asse Y X-Centering (%) , X-Centraggio (%) X-Coordinate , Coordinate X X-Coordinate [Manual] , Coordinate X [Manuale] X-Dispersion , Dispersione X X-Factor (%) , Fattore X (%) X-Ratio , Rapporto X X-Resolution , Risoluzione X X-Scale , Scala X X-Size (px) , Dimensione X (px) X-Variations , X-Variazioni X/Y-Ratio , Rapporto X/Y X1 (none) , X1 (nessuno) XY Mirror , XY Specchio XY-Axes , XY-Assi XY-Coordinates (%) , Coordinate XY (%) Y Center , Centro Y Y-Angle , Angolo Y Y-Axis , Asse Y Y-Axis Then X-Axis , Asse Y e poi asse X Y-Centering (%) , Centratura a Y (%) Y-Coordinate , Coordinata Y Y-Coordinate [Manual] , Coordinata Y [Manuale] Y-Dispersion , Dispersione a Y Y-Factor , Fattore Y Y-Factor (%) , Fattore Y (%) Y-Multiplier , Y-Moltiplicatore Y-Ratio , Rapporto a Y Y-Resolution , Risoluzione Y Y-Scale , Scala Y Y-Size , Dimensione a Y Y-Size (px) , Dimensione Y (px) Y-Variations , Y-Variazioni YAG Effect , Effetto YAG YCbCr (Chroma Only) , YCbCr (Solo croma) YCbCr (Distinct) , YCbCr (Distinto) YCbCr (Luma Only) , YCbCr (Solo Luma) YCbCr (Mixed) , YCbCr (Misto) YCbCr [Blue Chrominance] , YCbCr [Crominanza Blu] YCbCr [Blue-Red Chrominances] , YCbCr [Cromanze Blu-Rosso] YCbCr [Green Chrominance] , YCbCr [Crominanza verde] YCbCr [Luminance] , YCbCr [Luminanza] YCbCr [Red Chrominance] , YCbCr [Crominanza Rossa] Yellow , Giallo Yellow 55B , Giallo 55B Yellow Factor , Fattore Giallo Yellow Film 01 , Film giallo 01 Yellow Shift , Spostamento giallo Yellow Smoothness , Levigatezza gialla YES8 , SÌ8 YIQ [chromas] , YIQ [cromas] You Can Do It , Si può fare Z-Angle , Angolo Z Z-Multiplier , Z-Moltiplicatore Z-Scale , Scala Z Z-Size , Dimensione Z Z^^8 + 15*z^^4 - 1 , Z^^8 + 15*z^4 - 1 ZilverFX - B&W Solarization , ZilverFX - Solarizzazione in bianco e nero ZilverFX - InfraRed , ZilverFX - Infrarosso ZilverFX - Vintage B&W , ZilverFX - B/N d'epoca Zone System , Sistema a zone Zoom Center , Centro Zoom Zoom Factor , Fattore di zoom Zoom In , Ingrandisci Zoom Out , Ingrandisci ================================================ FILE: translations/filters/gmic_qt_ja.csv ================================================ Arrays & Tiles , アレイとタイル Artistic , 芸術的な Black & White , ブラック&ホワイト Colors , Contours , 輪郭 Deformations , 変形 Degradations , 分解 Details , 詳細 Testing , テスト Frames , フレーム Frequencies , 周波数 Layers , レイヤー Lights & Shadows , 光と影 Patterns , パターン Rendering , レンダリング Repair , 補修 シーケンス , Séquences Silhouettes , シルエット Icons , アイコン Misc , その他 Nature , 自然 Others , その他 Stereoscopic 3D , 立体視3D ♥ Support Us ! ♥ , サポートしてください! ♥. *Colors Doping , *カラーズドーピング *Colors Doping* , *カラーズドーピング★★★★★★★★★★★★★★★★★★★★★★★★☆彡 *Comix Colors* , *コミックスカラーズ *Dark Edges* , *ダークエッジ* *Dark Screen* , *ダークスクリーン* *Graphix Colors , *グラフィックスカラーズ *Vivid Edges* , *ビビッドエッジ *Vivid Screen* , *ビビッドスクリーン +180 Deg. , +180度 +90 Deg. , +90度 - NO - , - 否 -1. Value Action , -1.値 アクション -2. Overall Channel(s) , -2.全体のチャンネル -3. Normalisation Channel(s) , -3.正規化チャンネル -4. Normalise , -4.ノーマライズ -90 Deg. , -90度 .Bmp , ビーエムピー .Png , ピーエヌジー 0 Deg. , 0度 0. Recompute , 0.再計算 1 Levels , 1 レベル 1. Plasma Texture [Discards Input Image] , 1.プラズマテクスチャ [入力画像を破棄する] 10. Quadtree Max Precision , 10.Quadtreeの最大の精度 10th , 十番 10th Color , 10色目 11. Quadtree Min Homogeneity , 11.クワッドツリーの最小均質性 11th , 十一日 12 Colors , 12色 12 Grays , 12 グレイズ 12. Quadtree Max Homogeneity , 12.Quadtreeの最大均質性 125 Keypoints , 125のキーポイント 128px , 一二八px 12th , 十二日 13. Noise Type , 13.ノイズの種類 13th , 十三日 14. Minimum Noise , 14.最小ノイズ 14th , 十四日 15. Maximum Noise , 15.最大ノイズ 15th , 十五日 16 Colors , 16色 16 Grays , 16 グレイズ 16. Noise Channel(s) , 16.ノイズチャンネル 16th , 十六日 17. Warp Iterations , 17.ワープ反復 18. Warp Intensity , 18.ワープ強度 180 Deg. , 180度 19. Warp Offset , 19.ワープオフセット 1st , 第一 1st Additional Palette (.Gpl) , 第1回追加パレット(.Gpl) 1st Color , 1色目 1st Parameter , 第1パラメータ 1st Text , 第1テキスト 1st Tone , 第一音 1st Variance , 第1変動 1st Y-Coord , 第1回Yコード 2 Colors , 2色 2 Grays , 2 グレイズ 2 Noise , 2 ノイズ 2-Strip Process , 2-ストリッププロセス 2. Plasma Scale , 2.プラズマスケール 20. Scale to Width , 20.幅へのスケール 21. Scale to Height , 21.高さまでのスケール 216 Keypoints , 216 キーポイント 22. Correlated Channels , 22.関連するチャンネル 22.5 Deg. , 22.5度 23. Boundary , 23.境界線 24. Warp Channel(s) , 24.ワープチャンネル 25. Random Negation , 25.ランダム否定 256px , 二百五十六平方センチメートル 26. Random Negation Channel(s) , 26.ランダム否定チャンネル 27 Keypoints , 27のポイント 27. Gamma Offset , 27.ガンマオフセット 270 Deg. , 270度 28. Hue Offset , 28.色相オフセット 29. Normalise , 29.ノーマライズ 2nd , 第二 2nd Additional Palette (.Gpl) , 第2回追加パレット(.Gpl) 2nd Color , 2ndカラー 2nd Parameter , 第2パラメータ 2nd Text , 第2テキスト 2nd Tone , セカンドトーン 2nd Variance , 第2回目の変動 2nd Y-Coord , 第2回Yコード 2x Type , 2xタイプ 2XY Mirror , 2XYミラー 2xy-Axes , 二軸 3 Colors , 3色 3 Grays , 3 グレイズ 3 Mix , 3 ミックス 3. Plasma Alpha Channel , 3.プラズマアルファチャンネル 30. Minimum Hue , 30.最小色相 31. Maximum Hue , 31.最大色相 32. Minimum Saturation , 32.最小飽和度 32px , 三十二倍 33. Maximum Saturation , 33.最大飽和度 34. Minimum Value , 34.最小値 343 Keypoints , 343 キーポイント 35. Maximum Value , 35.最大値 36. Hue Offset , 36.色相オフセット 37. Saturation Offset , 37.彩度オフセット 38. Value Offset , 38.値オフセット 3D Blocks , 3Dブロック 3D CLUT (Fast) , 3D CLUT(高速 3D CLUT (Precise) , 3D CLUT (精密) 3D Colored Object , 3Dカラーオブジェクト 3D Conversion , 3D変換 3D Elevation , 3Dエレベーション 3D Elevation [Animated] , 3Dエレベーション [アニメーション] 3D Extrusion , 3D押出 3D Extrusion [Animated] , 3D押出し【アニメ化 3D Image Object , 3D画像オブジェクト 3D Image Object [Animated] , 3Dイメージオブジェクト[アニメーション] 3D Image Type , 3D画像タイプ 3D Lathing , 3D旋盤加工 3D Metaballs , 3Dメタボール 3D Random Objects , 3Dランダムオブジェクト 3D Reflection , 3D反射 3D Rubber Object , 3Dラバーオブジェクト 3D Starfield , 3Dスターフィールド 3D Text Pointcloud , 3Dテキストポイントクラウド 3D Tiles , 3Dタイル 3D Video Conversion , 3D動画変換 3D Waves , 3次元波 3rd , 第三 3rd Color , 3色目 3rd Parameter , 第3パラメータ 3rd Tone , サードトーン 3rd X-Coord , 第3回エックスコード 3rd Y-Coord , 第3回Yコード 4 Colors , 4色 4 Grays , 4 グレイズ 4. Segmentation [No Alpha Channel] , 4.セグメンテーション【アルファチャンネルなし 4096x4096 Layer , 4096x4096 レイヤ 45 Deg. , 45度 4th , 第四回 4th Color , 4色目 4th Tone , 第四音 5. Edge Threshold , 5.エッジしきい値 512x512 Layer , 512x512層 5th , 第五 5th Color , 第5色 5th Tone , 五調 6. Smoothness , 6.6.滑らかさ 60's (faded Alt) , 60年代 60's (faded) , 六十年代 64 (Faster) , 64 (高速) 64 Keypoints , 64のキーポイント 64px , 六十四px 67.5 Deg. , 67.5度 6th , 第六 6th Color , 第6色 6th Tone , 六調 7. Blur , 7.ぼかし 7th , 七 7th Color , 七色 7th Tone , 七音 8 Colors , 8色 8 Grays , 8 グレイズ 8 Keypoints (RGB Corners) , 8つのキーポイント(RGBコーナー 8. Quadtree Pixelisation [No Alpha Channel] , 8.クワッドツリーピクセル化 [アルファチャンネルなし] 8px , 八px 8th , 八 8th Color , 8色目 8th Tone , はちと 9. Quadtree Min Precision , 9.Quadtreeの最小精度 90 Deg. , 90度 9th , 九日 9th Color , 9色目 [Cyan]MYK , シアン]MYK A Lot of Key , 多くのキー A Lot of Magenta , マゼンタがたくさん A Lot of Yellow , 黄色がいっぱい A-Color Factor , エーカラーファクター A-Color Shift , Aカラーシフト A-Color Smoothness , A色の滑らかさ A-Component , A成分 A-Value , A値 A4 / 100 PPI (Recommended) , A4 / 100 PPI(推奨 Abigail Gonzalez (21) , アビゲイル・ゴンザレス(21 About G'MIC , G'MICについて Absolute Brightness , 絶対的な明るさ Absolute Value , 絶対値 Abstraction , 抽象化 Acceleration , 加速 Achromatomaly , アクロマトンもく Achromatopsia , 無色症 Acros , アクロス Acros+G , アクロス+G Acros+R , アクロス+R Acros+Ye , アクロス+イェ Action , アクション Action #1 , アクション#1 Action #10 , アクション#10 Action #11 , アクション#11 Action #12 , アクション#12 Action #13 , アクション#13 Action #14 , アクション#14 Action #15 , アクション#15 Action #16 , アクション#16 Action #17 , アクション#17 Action #18 , アクション#18 Action #19 , アクション#19 Action #2 , アクション#2 Action #20 , アクション#20 Action #21 , アクション#21 Action #22 , アクション#22 Action #23 , アクション#23 Action #24 , アクション#24 Action #3 , アクション#3 Action #4 , アクション#4 Action #5 , アクション#5 Action #6 , アクション#6 Action #7 , アクション#7 Action #8 , アクション#8 Action #9 , アクション#9 Action Magenta 01 , アクションマゼンタ01 Action Red 01 , アクションレッド01 Activate 'Pencil Smoother' , ペンシルスムーサー」を有効にする Activate Color Enhancement , カラーエンハンスメントを有効にする Activate Colors Geometric Shapes , 色を活性化させる 幾何学的な図形 Activate Custom Filter , カスタムフィルタを有効にする Activate Lizards , トカゲを起動する Activate Mirror , ミラーをアクティブにする Activate Pink Elephants , ピンクの象を活性化させる Activate Second Direction , 第二の方向をアクティブにする Activate Shakes , シェイクをアクティブにする Activate Slice 1 , スライス1をアクティブにする Activate Slice 2 , スライス2を起動 Activate Slice 3 , スライス3をアクティブにする Activate Slice 4 , スライス4をアクティブにする Activer Symmetrizoscope , アクティバーシンメトリゾスコープ Adaptive , 適応的 Add , 追加 Add 1px Outline , 1px追加 アウトライン Add Alpha Channels to Detail Scale Layers , 詳細スケールレイヤーにアルファチャンネルを追加 Add as a New Layer , 新規レイヤーとして追加 Add Chalk Highlights , 白亜のハイライトを追加 Add Color Background , 色の背景を追加 Add Comment Area in HTML Page , HTMLページにコメントエリアを追加する Add Grain , 穀物を追加 Add Image Label , 画像ラベルの追加 Add Painter's Touch , ペインターズタッチを追加 Add User-Defined Constraints (Interactive) , ユーザー定義制約の追加(インタラクティブ Additional Duplicates Count , 追加の重複数 Additional Outline , 追加の概要 Additive , 添加剤 Adjust Background Reconstruction , 背景の再構成を調整する Adventure 1453 , アドベンチャー1453 Agfa Ultra Color 100 , アグファ ウルトラカラー100 Agfa Vista 200 , アグファビスタ200 Aggresive , 積極的 Aggressive Highlights Recovery 5 , アグレッシブハイライト回復5 Alex Jordan (81) , アレックス・ジョーダン (81) Algorithm , アルゴリズム Aliasing , エイリアス Alien Green , エイリアングリーン Align Image Streams , 画像ストリームを整列させる Align Layers , レイヤーを整列させる Aligned , アライメント Alignment Type , アライメントタイプ All , すべての All 45° Rotations , すべての45°回転 All 90° Rotations , すべての90°回転 All [Collage] , すべての[コラージュ] All but Reference Color , リファレンスカラー以外はすべて All Layers and Masks , すべてのレイヤーとマスク All Tones , オールトーン All XY-Flips , すべてのXYフリップ Allow Angle , 角度を許可する Allow Outer Blending , 外側のブレンドを許可する Allow Self Intersections , 自己交差を許す Alpha , アルファ Alpha Channel , アルファチャンネル Alpha Mode , アルファモード Also Match Gradients , グラデーションにも対応 Ambient (%) , 周囲温度(%) Ambient Lightness , 周囲の明るさ Amount , 金額 Amplitude , 振幅 Amplitude (%) , 振幅(%) Amplitude / Angle , 振幅・角度 Amstragram , アムストラグラム Amstragram+ , アムストラグラムプラス Anaglypgh Green/magenta Optimized , アナグリフ グリーン/マゼンタ オプティマイズ Anaglyph Blue/yellow , アナグリフ ブルー/イエロー Anaglyph Blue/yellow Optimized , アナグリフブルー/イエロー最適化 Anaglyph Glasses Adjustment , アナグリフメガネの調整 Anaglyph Green/magenta , アナグリフ グリーン/マゼンタ Anaglyph Green/magenta Optimized , アナグリフ グリーン/マゼンタ 最適化 Anaglyph Reconstruction , アナグリフの復元 Anaglyph Red/cyan , アナグリフ レッド/シアン Anaglyph Red/cyan Optimized , アナグリフ レッド/シアン最適化 Anaglyph: Red/Cyan , アナグリフ:レッド/シアン AnalogFX - Anno 1870 Color , AnalogFX - Anno 1870 カラー AnalogFX - Old Style I , AnalogFX - オールドスタイルI AnalogFX - Old Style II , AnalogFX - オールドスタイルII AnalogFX - Old Style III , AnalogFX - オールド・スタイルIII AnalogFX - Sepia Color , AnalogFX - セピアカラー AnalogFX - Soft Sepia I , AnalogFX - ソフトセピアI AnalogFX - Soft Sepia II , AnalogFX - ソフトセピアII Analysis Scale , 分析規模 Analysis Smoothness , 分析の滑らかさ And , そして Angle , 角度 Angle (%) , 角度(%) Angle (deg) , 角度(deg) Angle (deg.) , 角度(deg.) Angle / Size , 角度・サイズ Angle Cut , アングルカット Angle Dispersion , 角度分散 Angle Image Contour , 角度画像の輪郭 Angle of Disturbance Surface , 撹乱面の角度 Angle of Main Nebulous Surface , 主な星雲面の角度 Angle Range , 角度範囲 Angle Range (deg.) , 角度範囲(deg. Angle Tilt , 角度チルト Angle Variations , 角度の変化 Anguish , 苦悩 Angular , アンギュラー Angular Precision , 角精度 Angular Tiles , アンギュラータイル Anime , アニメ Anisotropic , 異方性 Anisotropy , 異方性 Annular Steiner Chain Round Tiles , アンニュラーシュタイナーチェーン丸型タイル Anti Alias , アンチエイリアス Anti-Aliasing , アンチエイリアシング Anti-Ghosting , アンチゴースト Antialiasing , アンチエイリアシング Antisymmetry , 反対称性 Any , 何れかの Apocalypse This Very Moment , 黙示録この瞬間 Apples , りんご Apply Adjustments On , 調整の適用 Apply Color Balance , カラーバランスを適用する Apply External CLUT , 外部CLUTの適用 Apply Mask , マスクを適用する Apply Skin Tone Mask , スキントーンマスクを塗る Apply Transformation From , トランスフォーメーションを適用する Aqua , アクア Aqua and Orange Dark , アクア&オレンジダーク Arabica 12 , アラビカ12 Area , エリア Area Smoothness , 面積平滑度 Areas Light Adjustment , エリアライト調整 Areas Smoothness , エリアの滑らかさ Array [Faded] , 配列 [フェード] Array [Mirrored] , 配列 [ミラーリング] Array [Random Colors] , 配列 [ランダムカラー] Array [Random] , 配列 [ランダム] Array [Regular] , 行列 [正規] Array Mode , 配列モード Arrows , 矢印 Arrows (Outline) , 矢印(アウトライン Artistic Modern , アーティスティック・モダン Artistic Hard , 芸術的なハード Artistic Round , アーティスティックラウンド Ascii , アスキー Ascii Art , アスキーアート Aspect , アスペクト Aspect Ratio , アスペクト比 Asplenium Adiantum-Nigrum , 藍藻 Associated Color , 関連色 Astia , アスティア属 Attenuation , 減衰 Aurora , オーロラ Australia , オーストラリア Auto , オート Auto Balance , オートバランス Auto Crop , オートクロップ Auto Reduce Level (Level Slider Is Disabled) , レベルを自動で下げる(レベルスライダは無効 Auto Set Hue Inverse (Hue Slider Is Disabled) , 色相を逆に自動設定(色相スライダーは無効 Auto-Clean Bottom Color Layer , オートクリーンボトムカラーレイヤー Auto-Reduce Number of Frames , フレーム数の自動削減 Auto-Set Periodicity , 自動設定周期性 Auto-Threshold , オートスレッショルド Autocrop , オートクロップ Autocrop Output Layers , オートクロップ出力レイヤ Automatic , 自動 Automatic & Contrast Mask , オートマチック&コントラストマスク Automatic [Scan All Hues] , 自動 [すべての色相をスキャン] Automatic Color Balance , 自動カラーバランス Automatic Depth Estimation , 自動深度推定 Automatic Upscale for Optimum Results , 最適な結果を得るための自動アップスケール Autumn , 秋 Ava 614 , エヴァ614 Avalanche , 雪崩 Average , 平均値 Average 3x3 , 平均3x3 Average 5x5 , 平均5x5 Average 7x7 , 平均7x7 Average 9x9 , 平均9x9 Average RGB , 平均RGB Average Smoothness , 平均平滑度 Avg , 平均 Avg / Max Weight , 平均/最大重量 Avg Branching , 平均支店数 Avg Left Angle (deg.) , 平均左角(deg. Avg Length Factor (%) , 平均長さ係数(%) Avg Right Angle (deg.) , 平均直角(deg. Avg Thickness Factor (%) , 平均厚さ係数(%) Axis , 軸 Azimuth , 方位角 Azrael 93 , アズラエル93 B&W , 白黒 B&W Pencil [Animated] , 白黒鉛筆 [アニメーション] B&W Photograph , 白黒写真 B&W Stencil , 白黒ステンシル B&W Stencil [Animated] , 白黒ステンシル[アニメーション] B-Color Factor , Bカラーファクター B-Color Shift , Bカラーシフト B-Color Smoothness , B色の滑らかさ B-Component , B成分 Background , 背景 Background Color , 背景色 Background Intensity , 背景強度 Background Point (%) , バックグラウンドポイント(%) Backward , 後方 Backward Horizontal , 後方水平 Backward Vertical , 後方垂直 Balance , バランス Balance Color , バランスカラー Balance SRGB , バランスSRGB Ball , ボール Balloons , 風船 Balls , ボール Band Width , バンド幅 Banding Denoise , バンディングデノワーズ Bandpass , バンドパス Bandwidth , 帯域幅 Barbara , バーバラ Barbed Wire , 有刺鉄線 Barnsley Fern , バーンズリーファーン Bars , バー Base Reference Dimension , 基本基準寸法 Base Scale , ベーススケール Base Thickness (%) , ベース厚さ(%) Basic Adjustments , 基本的な調整 Batch Processing , バッチ処理 Bayer Filter , バイエルフィルター Bayer Reconstruction , バイエル復興 Behind , 後ろ Below , 以下 Berlin Sky , ベルリンの空 Best Match , ベストマッチ Beta , ベータ BG Textured , BG テクスチャ Bi-Directional , 双方向 Bias , バイアス Bicubic , バイキュービック Bidirectional [Sharp] , 双方向 [シャープ] Bidirectional [Smooth] , 双方向 [スムース] Bidirectional Rendering , 双方向レンダリング Bilateral , 二国間 Bilateral Radius , 両側半径 Binary , バイナリ Binary Digits , 二進数 Bit Masking (End) , ビットマスキング(終了 Bit Masking (Start) , ビットマスキング(開始 Black , ブラック Black & White , ブラック&ホワイト Black & White (25) , ブラック&ホワイト (25) Black & White-1 , ブラック&ホワイト-1 Black & White-10 , ブラック&ホワイト10 Black & White-2 , ブラック&ホワイト2 Black & White-3 , ブラック&ホワイト3 Black & White-4 , ブラック&ホワイト4 Black & White-5 , ブラック&ホワイト5 Black & White-6 , ブラック&ホワイト6 Black & White-7 , ブラック&ホワイト7 Black & White-8 , ブラック&ホワイト8 Black & White-9 , ブラック&ホワイト9 Black Crayon Graffiti , ブラッククレヨングラフィティ Black Dices , ブラックダイス Black Level , ブラックレベル Black on Transparent , 透明な上に黒 Black on Transparent White , 透明な白地に黒 Black on White , 白地に黒 Black Point , ブラックポイント Black Star , ブラックスター Black to White , 黒から白へ Blacks , 黒子 Blade Runner , ブレードランナー Blank , ブランク Bleach Bypass , ブリーチバイパス Bleach Bypass 1 , 漂白剤バイパス1 Bleach Bypass 2 , 漂白剤バイパス2 Bleach Bypass 3 , ブリーチバイパス3 Bleach Bypass 4 , 漂白剤バイパス4 Bleech Bypass Green , ブリーチバイパスグリーン Bleech Bypass Yellow 01 , ブリーチバイパス黄色 01 Blend , ブレンド Blend [Average All] , ブレンド [すべて平均] Blend [Edges] , ブレンド [エッジ] Blend [Fade] , ブレンド [フェード] Blend [Median] , ブレンド [中央値] Blend [Seamless] , ブレンド【シームレス Blend [Standard] , ブレンド [スタンダード] Blend All Layers , すべてのレイヤーをブレンド Blend Decay , ブレンドディケイ Blend Mode , ブレンドモード Blend Rays , ブレンドレイ Blend Scales , ブレンドスケール Blend Size , ブレンドサイズ Blend Threshold , ブレンドしきい値 Blending Mode , ブレンドモード Blending Size , ブレンドサイズ Blindness Type , 盲目のタイプ Blob 1 , ブロブ1 Blob 1 Color , ブロブ1色 Blob 10 , ブロブ10 Blob 10 Color , ブロブ10色 Blob 11 , ブロブ11 Blob 11 Color , ブロブ11色 Blob 12 , ブロブ12 Blob 12 Color , ブロブ12色 Blob 2 Color , ブロブ2色 Blob 3 , ブロブ3 Blob 3 Color , ブロブ3色 Blob 4 , ブロブ4 Blob 4 Color , ブロブ4色 Blob 5 , ブロブ5 Blob 5 Color , ブロブ5色 Blob 6 , ブロブ6 Blob 6 Color , ブロブ6色 Blob 7 , ブロブ7 Blob 7 Color , ブロブ7色 Blob 8 , ブロブ8 Blob 8 Color , ブロブ8色 Blob 9 , ブロブ9 Blob 9 Color , ブロブ9色 Blob Size , ブロブサイズ Blob2 , ブロブ2 Blobs Editor , ブロブエディタ Bloc , ブロック Bloc Size (%) , ブロックサイズ(%) Blockism , ブロッキング Bloom , ブルーム Blue , 青色 Blue & Red Chrominances , ブルー&レッドクロミナンス Blue Chroma Factor , ブルークロマファクター Blue Chroma Shift , ブルークロマシフト Blue Chroma Smoothness , ブルークロマスムースネス Blue Chrominance , ブルークロミナンス Blue Cold Fade , ブルーコールドフェード Blue Dark , ブルーダーク Blue Factor , ブルーファクター Blue House , ブルーハウス Blue Ice , ブルーアイス Blue Level , ブルーレベル Blue Mono , ブルーモノ Blue Rotations , ブルーローテーション Blue Screen Mode , ブルースクリーンモード Blue Shadows 01 , 青い影 01 Blue Shift , ブルーシフト Blue Smoothness , ブルーの滑らかさ Blue Steel , ブルースチール Blue Wavelength , 青色の波長 Blue-Green , ブルーグリーン Blues , ブルース Blur , ぼかし Blur [Angular] , ぼかし [Angular] Blur [Bloom] , ぼかし [ブルーム] Blur [Depth-Of-Field] , ぼかし [被写界深度] Blur [Gaussian] , ぼかし [ガウシアン] Blur [Glow] , ぼかし[グロー] Blur [Linear] , ぼかし [リニア] Blur [Multidirectional] , ぼかし [多方向] Blur [Radial] , ぼかし [放射状] Blur Alpha , ぼかしアルファ Blur Amount , ぼかし量 Blur Amplitude , ぼかしの振幅 Blur Dodge and Burn Layer , ダッジとバーンのレイヤーをぼかす Blur Factor , ぼかし要素 Blur Frame , ぼかしフレーム Blur Percentage , ぼかし率 Blur Precision , ぼかし精度 Blur Shade , ぼかしシェード Blur Standard Deviation , ぼかし標準偏差 Blur Strength , ぼかしの強さ Blur the Mask , マスクをぼかす Boats , ボート Bob Ford , ボブ・フォード Bokeh , ボケ Boost , ブースト Boost Chromaticity , ブースト色度 Boost Contrast , ブーストコントラスト Boost Smooth , ブーストスムース Boost Stroke , ブーストストローク Boost-Fade , ブーストフェード Border Color , ボーダーカラー Border Opacity , ボーダー不透明度 Border Outline , ボーダーの概要 Border Smoothness , ボーダーの滑らかさ Border Thickness (%) , 境界厚さ(%) Border Width , ボーダー幅 Both , 両方とも Bottles , ボトル Bottom , 底部 Bottom and Left Foreground , 底面と左前景 Bottom and Right Foreground , 底面と右前景 Bottom and Top Foreground , 底面と上面の前景 Bottom Layer , 底面層 Bottom Left , 左下 Bottom Right , 右下 Bottom Size , 底面サイズ Bottom-Left , 左下 Bottom-Left Vertex (%) , 左下頂点 (%) Bottom-Right , 右下 Bottom-Right Vertex (%) , 右下頂点(%) Bouncing Balls , 跳ねるボール Boundaries (%) , 境界線(%) Boundary , 境界線 Boundary Condition , 境界条件 Boundary Conditions , 境界条件 Bourbon 64 , バーボン64 Box , ボックス Box Fitting , ボックスフィッティング Box2x , ボックス2x Branches , 枝 Braque: Landscape near Antwerp , ブラクアントワープ近郊の風景 Braque: Le Viaduc à L'Estaque , ブラクル・ヴィアドゥック&グラーヴ; L'Estaque Braque: Little Bay at La Ciotat , ブラクラ・ジョタのリトルベイ Braque: The Mandola , ブラクマンドラ Brighness , 厳しさ Bright , 明るい Bright Green , ブライトグリーン Bright Green 01 , ブライトグリーン01 Bright Length , 明るい長さ Bright Pixels , 明るいピクセル Bright Teal Orange , ブライトティールオレンジ Bright Warm , 明るい暖かさ Brighter , より明るく Brightness , 明るさ Brightness (%) , 輝度(%) Bristle Size , ブリストルサイズ Bronze , ブロンズ Brownish , 茶色っぽい Brushify , ブラッシフィ Built-in Gray , 内蔵グレー Bump Factor , バンプファクター Bump Map , バンプマップ Burn , バーン Burn Blur , バーンブラー Burn Strength , バーンの強さ Butterfly , 蝶 By Blue Chrominance , ブルークロミナンスで By Blue Component , ブルーコンポーネント By Custom Expression , カスタム表現で By Green Component , グリーンコンポーネント By Iteration , イテレーション By Lightness , 軽さで By Luminance , ルミナンスで By Red Chrominance , 赤色のクロミナンス By Red Component , レッドコンポーネント By Value , 金額別 Byers 11 , バイヤーズ11 C[Magenta]YK , C[マゼンタ]YK Camera Motion Only , カメラモーションのみ Camera X , カメラX Camera Y , カメラY Cameraman , カメラマン Camouflage , カモフラージュ Candle Light , キャンドルライト Canvas , キャンバス Canvas Brightness , キャンバスの明るさ Canvas Color , キャンバスカラー Canvas Darkness , キャンバスの闇 Canvas Texture , キャンバスのテクスチャ Car , 車 Card Suits , カードスーツ Caribe , カリベ Cartesian Transform , デカルト変換 Cartoon , 漫画 Cartoon [Animated] , 漫画 [アニメ] Cat , 猫 Category , カテゴリー Cell Size , セルサイズ Center , センター Center (%) , センター(%) Center Background , センター背景 Center Foreground , 中央前景 Center Help , センターヘルプ Center Size , センターサイズ Center Smoothness , センター平滑度 Center X , センターX Center X-Shift , センターXシフト Center Y , センターY Center Y-Shift , センターYシフト Centering (%) , センタリング(%) Centering / Scale , センタリング/スケール Centers Color , センターカラー Centers Radius , センター半径 Centimeter , センチ Central Perspective Outdoor , 中央視点のアウトドア Central Perspective Indoor , 中央展望インドア Central Perspective Outdoor , 中央視点のアウトドア Centre , センター Chalk It Up , チョークアップ Channel #1 , チャンネル#1 Channel #2 , チャンネル #2 Channel #3 , チャンネル#3 Channel Processing , チャネル処理 Channel(s) , チャンネル Channels , チャンネル Channels to Layers , チャンネルからレイヤーへ Charcoal , 木炭 Charset , 文字セット Chebyshev , チェビシェフ Checkered , チェック柄 Checkered Inverse , チェッカー逆 Chemical 168 , ケミカル168 Chessboard , チェスボード Chick , ひよこ Chroma , クロマ Chroma Noise , クロマノイズ Chromatic Aberrations , 色収差 Chromaticity From , 色度から Chrome 01 , クロム01 Chrominances Only (ab) , クロミナンスのみ(ab) Chrominances Only (CbCr) , クロミナンスのみ(CbCr) Cine Basic , シネベーシック Cine Bright , シネ・ブライト Cine Cold , シネコールド Cine Drama , シネドラマ Cine Teal Orange 1 , シネ・ティールオレンジ1 Cine Teal Orange 2 , シネ・ティールオレンジ2 Cine Vibrant , シネ・バイブラント Cine Warm , シネ・ウォーム Cinema , 映画館 Cinema 2 , シネマ2 Cinema 3 , シネマ3 Cinema 4 , シネマ4 Cinema 5 , シネマ5 Cinema Noir , シネマノワール Cinematic (8) , シネマティック (8) Cinematic for Flog , フログのためのシネマティック Cinematic Lady Bird , シネマティック レディバード Cinematic Mexico , シネマティック・メキシコ Cinematic Travel (29) , 映画の旅 (29) Cinematic-01 , シネマティック01 Cinematic-02 , シネマティック-02 Cinematic-03 , シネマティック-03 Cinematic-1 , シネマティック-1 Cinematic-10 , シネマティック10 Cinematic-2 , シネマティック-2 Cinematic-3 , シネマティック-3 Cinematic-4 , シネマティック4 Cinematic-5 , シネマティック・ファイブ Cinematic-6 , シネマティック-6 Cinematic-7 , シネマティック7 Cinematic-8 , シネマティック8 Cinematic-9 , シネマティック9 Circle , 円 Circle (Inv.) , 円(Inv. Circle 1 , 円 1 Circle 2 , サークル2 Circle Abstraction , 円の抽象化 Circle Art , サークルアート Circle to Square , 円から四角へ Circle Transform , サークル変換 Circles , 円 Circles (Outline) , 円(概要 Circles 1 , 円 1 Circles 2 , 円 2 Circular , 円形 City 7 , シティ7 Clarity , 明快さ Classic Chrome , クラシッククローム Classic Teal and Orange , クラシックティールとオレンジ Clayton 33 , クレイトン33 Clean , 清潔な Clean Text , クリーンなテキスト Clear Control Points , コントロールポイントを明確にする Clear Teal Fade , クリアティールフェード Cliff , 崖 Clip , クリップ Clip CMYK , クリップCMYK Clip RGB , クリップRGB Closeup , クローズアップ Closing , クロージング Closing - Opening , クロージング - オープニング Closing - Original , クロージング - オリジナル Clouds , 雲 Clouseau 54 , クルソー 54 CLUT from After - Before Layers , 後からのCLUT - レイヤーの前 CLUT Opacity , CLUT 不透明度 CM[Yellow]K , CM[黄]K CMY , CMY CMY[Key] , CMY[キー] CMYK , シーエムワイケー CMYK [cyan] , CMYK [シアン] CMYK [Key] , CMYK [キー] CMYK [Magenta] , CMYK [マゼンタ] CMYK [Yellow] , CMYK [イエロー] CMYK Tone , CMYKトーン Coarse , 粗い Coarsest (faster) , 最も粗い(速い Cobi 3 , コビ3 Code , コード Coefficients , 係数 Coffee 44 , コーヒー44 Coherence , コヒーレンス Cold Clear Blue , コールドクリアブルー Cold Clear Blue 1 , コールドクリアブルー 1 Cold Simplicity 2 , コールド・シンプリシティ2 Color , カラー Color (rich) , カラー(リッチ) Color 1 , カラー1 Color 1 (Up/Left Corner) , カラー1(上/左コーナー Color 2 , カラー2 Color 2 (Up/Right Corner) , カラー2(上・右コーナー Color 3 , カラー3 Color 3 (Bottom/Left Corner) , カラー3(下/左コーナー Color 4 , カラー4 Color 4 (Bottom/Right Corner) , カラー4(下/右コーナー) Color A , カラーA Color Abstraction Opacity , 色の抽象化 不透明度 Color Abstraction Paint , カラー抽象化ペイント Color B , カラーB Color Balance , カラーバランス Color Basis , カラーベース Color Blending , カラーブレンド Color Blindness , 色覚異常 Color Blue-Yellow , 色青黄色 Color Boost , カラーブースト Color Burn , カラーバーン Color C , カラーC Color Channel Smoothing , カラーチャンネルのスムージング Color Channels , カラーチャンネル Color D , カラーD Color Dispersion , 色分散 Color Doping , カラードーピング Color E , カラーE Color Effect Mode , カラーエフェクトモード Color F , カラーF Color G , カラーG Color Gamma , カラーガンマ Color Grading , カラーグレーディング Color Green-Magenta , カラーグリーン・マゼンタ Color Highlights , カラーハイライト Color Image , カラー画像 Color Intensity , 色の強度 Color Mask , カラーマスク Color Mask [Interactive] , カラーマスク[インタラクティブ] Color Median , 色の中央値 Color Metric , カラーメトリック Color Midtones , カラーミッドトーン Color Mode , カラーモード Color Model , カラーモデル Color Negative , カラーネガティブ Color on White , 白の上の色 Color Overall Effect , カラー全体の効果 Color Presets , カラープリセット Color Quantization , 色の量子化 Color Rendering , カラーレンダリング Color Shading (%) , 色の濃淡 (%) Color Shadows , カラーシャドウ Color Smoothness , 色の滑らかさ Color Space , カラースペース Color Spots + Extrapolated Colors + Lineart , カラースポット+外挿し色+ラインアート Color Spots + Lineart , カラースポット+ラインアート Color Strength , 色の強さ Color Temperature , 色温度 Color Tolerance , 色の公差 Color Variation [Random -1] , カラーバリエーション[ランダム-1] Colorbase , カラーベース Colorburn , カラーバーン Colored Geometry , 色付き幾何学 Colored Grain , 着色された穀物 Colored Lineart , 色付きラインアート Colored on Black , 黒地に着色 Colored on Transparent , 透明な上に着色された Colored Outline , 色付きアウトライン Colored Pencils , 色鉛筆 Colored Regions , 色付き地域 Colorful , カラフルな Colorful 0209 , カラフルな0209 Colorful Blobs , カラフルなブロブ Coloring , カラーリング Colorize [Interactive] , カラーライズ[インタラクティブ] Colorize [Photographs] , カラーライズ[写真]をする Colorize [with Colormap] , カラーライズ [カラーマップ付き] Colorize Lineart [Auto-Fill] , 線画のカラー化 [自動塗りつぶし] Colorize Lineart [Propagation] , 線画をカラー化する [伝搬] Colorize Lineart [Smart Coloring] , Colorize Lineart [スマートぬりえ] Colorize Mode , カラー化モード Colorized Image (1 Layer) , カラー画像(1レイヤー) Colormap , コロマップ Colormap Type , カラーマップの種類 Colors , 色 Colors A , カラーズA Colors B , カラーB Colors Only , 色のみ Colors Only (1 Layer) , 色のみ(1層 Colors to Layers , 色からレイヤーへ Colorspace , 色空間 Colour , 色 Colour Channels , カラーチャンネル Colour Model , カラーモデル Colour Smoothing , カラースムージング Colour Space Mode , カラースペースモード Column by Column , コラム別 Comic Style , コミックスタイル Comix Colors , コミックスカラー Components , 構成要素 Composed Layers , 合成レイヤー Compress Highlights , 圧縮ハイライト Compression Blur , 圧縮ぼかし Compression Filter , 圧縮フィルター Computation Mode , 計算モード Cone , コーン Conflict 01 , コンフリクト01 Conformal Maps , コンフォーマルマップ Connect-Four , コネクトフォー Connectivity , 接続性 Connectors Centering , コネクタセンタリング Connectors Variability , コネクタのばらつき Constrain Image Size , 画像サイズの制限 Constrain Values , 制約値 Constrained Sharpen , 制約付きシャープネス Constraint Radius , 制約半径 Continuous Droste , 連続ドロスト Contour Coherence , コンターコヒーレンス Contour Detection (%) , 輪郭の検出 (%) Contour Normalization , 輪郭の正規化 Contour Precision , 輪郭の精密さ Contour Threshold , コンターしきい値 Contour Threshold (%) , コンターしきい値 (%) Contours , 輪郭 Contours + Flocon/Snowflake , 輪郭+フローコン/スノーフレーク Contours Recursion , 輪郭の再帰 Contrail 35 , コントレール35 Contrast , コントラスト Contrast (%) , コントラスト(%) Contrast Smoothness , コントラストの滑らかさ Contrast Swiss Mask , コントラストスイスマスク Contrast with Highlights Protection , ハイライト保護とのコントラスト Contrasty Afternoon , コントラストのあるアフタヌーン Contrasty Green , コントラストのあるグリーン Contributors , 投稿者 Control Point 1 , 制御点1 Control Point 2 , 制御点2 Control Point 3 , コントロールポイント3 Control Point 4 , 制御点4 Control Point 5 , コントロールポイント5 Control Point 6 , コントロールポイント6 Convolve , コンボルブ Cool , 涼しい Cool (256) , クール (256) Cool / Warm , クール/ウォーム Copper , 銅 Corner Brightness , コーナー輝度 Correlated Channels , 関連するチャネル Cos(z) , コス(z) Counter Clockwise , 時計回りに反時計回りに Course 4 , コース4 Cracks , ひび割れ Crease , クリース Creative Pack (33) , 創造的なパック (33) Crip Winter , クリップ冬 Crisp Romance , キリッとしたロマンス Crisp Warm , パリッとした暖かさ Criterion , きじゅん Crop , クロップ Crop (%) , 作物(%) Cross Process CP 130 , クロスプロセスCP 130 Cross Process CP 14 , クロスプロセスCP 14 Cross Process CP 15 , クロスプロセスCP 15 Cross Process CP 16 , クロスプロセスCP 16 Cross Process CP 18 , クロスプロセスCP 18 Cross Process CP 3 , クロスプロセスCP 3 Cross Process CP 4 , クロスプロセスCP 4 Cross Process CP 6 , クロスプロセスCP 6 Cross-Hatch Amount , クロスハッチ量 Crossed , 交差した Crosses 1 , 十字架1 Crosses 2 , クロス2 Crosshair , クロスヘア CRT Sub-Pixels , CRTサブピクセル Crushin , クラッシン Crystal , クリスタル Crystal Background , クリスタルの背景 Cube , キューブ Cube (256) , キューブ (256) Cubic , キュービック Cubicle 99 , キュービクル99 Cubism , キュービズム Cubism on Color Abstraction , 色彩抽象化の上のキュビスム Cup , カップ Cupid , キューピッド Curvature , 曲率 Curvature Shadow , 曲線の影 Curve Amount , 曲線量 Curve Angle , 曲線角度 Curve Length , 曲線の長さ Curved , 曲線 Curved Stroke , 曲線ストローク Curves , 曲線 Curves Previously Defined , 以前に定義された曲線 Custom , カスタム Custom Code [Global] , カスタムコード [グローバル] Custom Code [Local] , カスタムコード [ローカル] Custom Correction Map , カスタム修正マップ Custom Depth Correction , カスタム深度補正 Custom Depth Maps Stream , カスタム デプスマップ ストリーム Custom Dictionary , カスタム辞書 Custom Filter Code , カスタムフィルターコード Custom Formula , カスタムフォーミュラ Custom Kernel , カスタムカーネル Custom Layers , カスタムレイヤー Custom Layout , カスタムレイアウト Custom Style (Bottom Layer) , カスタムスタイル(ボトムレイヤー Custom Style (Top Layer) , カスタムスタイル(トップレイヤー Custom Transform , カスタムトランスフォーム Customize CLUT , CLUTのカスタマイズ Cut , カット Cut & Normalize , カットとノーマライズ Cut High , カットハイ Cut Low , カットロー Cutout , カットアウト Cyan , シアン Cyan Factor , シアン因子 Cyan Shift , シアンシフト Cyan Smoothness , シアンの滑らかさ Cycle Layers , サイクルレイヤー Cycles , サイクル Cylinder , シリンダー D and O 1 , DとO 1 Damping per Octave , オクターブあたりのダンピング Dark Motive , 暗い動機 Dark Blues in Sunlight , 日光の中のダークブルース Dark Boost , ダークブースト Dark Color , 暗い色 Dark Edges , ダークエッジ Dark Green 02 , ダークグリーン 02 Dark Green 1 , ダークグリーン1 Dark Grey , ダークグレー Dark Length , 暗い長さ Dark Motive , 暗い動機 Dark Pixels , ダークピクセル Dark Place 01 , 暗い場所01 Dark Screen , ダークスクリーン Dark Sky , 暗黒の空 Dark Walls , 暗い壁 Darken , ダークン Darker , 暗い Darkness , 闇 Darkness Level , 闇のレベル Date 39 , 日付 39 David , デヴィッド Day for Night , 夜の日 Daylight Scene , 昼間のシーン DCCI2x , ディーシーアイツーエックス DCP Dehaze , DCPデハゼ De-Anaglyph , デアナグリフ Debug Font Size , デバッグフォントサイズ Decagon , 十角形 Decompose , 分解 Decompose Channels , チャンネルの分解 Decoration , 装飾品 Decreasing , 減少 Deep , 深い Deep Blue , ディープブルー Deep Dark Warm , ディープダークウォーム Deep High Contrast , 深いハイコントラスト Deep Teal Fade , ディープティールフェード Deep Warm Fade , ディープウォームフェード Default , デフォルト Defects Contrast , 欠陥のコントラスト Defects Density , 欠陥密度 Defects Size , 欠陥のサイズ Defects Smoothness , 欠陥の滑らかさ Deform , 変形 Deinterlace , デインターレース Deinterlace2x , デインターレース2倍 Delaunay-Oriented , デローネ指向 Delaunay: Portrait De Metzinger , デローネ:デメッツィンガーの肖像 Delaunay: Windows Open Simultaneously , 遅延:Windowsを同時に開く Delete Layer Source , レイヤーソースの削除 Delicatessen , デリカテッセン Denim , デニム Denoise Simple 40 , デノワーズシンプル40 Density , 密度 Density (%) , 密度(%) Depth , 深さ Depth Fade In Frames , フレーム内の深さフェード Depth Fade Out Frames , 深さフェードアウトフレーム Depth Field Control , 深度フィールド制御 Depth Map , デプスマップ Depth Map Construction , デプスマップの構築 Depth Map Only , デプスマップのみ Depth Map Reconstruction , デプスマップ再構築 Depth Maps Only , デプスマップのみ Depth-Of-Field Type , フィールド深度タイプ Desaturate , 脱飽和 Desaturate (%) , 脱飽和度(%) Desaturate Norm , ノルマルを脱飽和させる Descent Method , 降臨法 Descreen , デスクリーン Desert Gold 37 , デザートゴールド 37 Despeckle , デスペックル Destination (%) , 宛先 (%) Destination X-Tiles , デスティネーションXタイル Destination Y-Tiles , デスティネーションYタイル Detail , 詳細 Detail Level , 詳細レベル Detail Reconstruction Detection , 詳細な再構成検出 Detail Reconstruction Smoothness , ディテール再構築の滑らかさ Detail Reconstruction Strength , 詳細再構築強度 Detail Reconstruction Style , 詳細再構築スタイル Detail Scale , 詳細スケール Detail Strength , 詳細強度 Details , 詳細 Details Amount , 詳細 金額 Details Equalizer , 詳細 イコライザ Details Scale , 詳細 スケール Details Smoothness , 詳細 滑らかさ Details Strength (%) , 詳細 強度(%) Detect Skin , 皮膚を検出します。 Deuteranomaly , しんしゅうせいぶつ Deuteranopia , 矮小化 Deviation , 偏差値 Diamond , ダイヤモンド Diamond (Inv.) , ダイヤモンド(Inv. Diamonds , ダイヤモンド Diamonds (Outline) , ダイヤモンド(概要 Dices , ダイス Dices with Colored Numbers , 色の付いた数字のサイコロ Dices with Colored Sides , 色付きサイコロ Dif , ディフ Difference , 違い Difference Mixing , 差分混合 Difference of Gaussians , ガウスの違い Different Axis , 異軸 Diffuse (%) , 拡散率(%) Diffuse Shadow , 拡散影 Diffusion , 拡散 Diffusion Tensors , 拡散テンソル Diffusivity , 拡散性 Digits , 数字 Dilatation , 希釈率 Dilate , 希釈する Dilation , 伸縮性 Dilation - Original , ダイレーション - オリジナル Dilation / Erosion , 浸食 Dimension , 寸法 Dimension [Diff] , 寸法 [Diff] Dimension A , 寸法A Dimensions (%) , 寸法(%) Dimensions Pixels , 寸法 ピクセル Dipole: 1/(4*z^2-1) , 双極子。1/(4*z^2-1) Direct , 直接 Direction , 方向 Directions 23 , 道順 23 Dirichlet , ディリクレ Dirty , 汚れた Disable , 無効化 Disabled , 無効化された Discard Contour Guides , コンターガイドの破棄 Discard Transparency , 透明性を捨てる Disco , ディスコ Display , 表示 Display Blob Controls , 表示ブロブのコントロール Display Color Axes , 表示色軸 Display Contours , 表示輪郭 Display Coordinates , 表示座標 Display Coordinates on Preview Window , プレビューウィンドウに座標を表示 Display Debug Info on Preview , プレビューにデバッグ情報を表示する Distance , 距離 Distance (Fast) , 距離(高速 Distance Transform , 距離変換 Distort Lens , レンズを歪める Distortion Factor , ディストーションファクター Distortion Surface Angle , 歪曲面角 Distortion Surface Position , 歪曲面位置 Disturbance Scale-By-Factor , 撹乱の規模別係数 Disturbance X , 撹乱X Disturbance Y , 撹乱Y Dither Output , ディザ出力 Dithering , ディザリング Divide , 割り算 Django 25 , ジャンゴ 25 Do Not Flatten Transparency , 透明度をフラットにしない Dodge , ダッジ Dodge and Burn , ダッジとバーン Dodge Blur , ダッジブラー Dodge Strength , ダッジ力 DOF Analyzer , DOFアナライザ Dog , 犬 Domingo 145 , ドミンゴ145 Don't Sort , ソートしないでください DoNothing , 何もしない Doodle , いたずら書き Dot Size , ドットサイズ Dots , ドット Download External Data , 外部データのダウンロード Dragon Curve , ドラゴンカーブ Dragonfly , トンボ Drawing Mode , 描画モード Drawn Montage , 描画モンタージュ Dream , 夢 Dream 1 , 夢1 Dream 85 , 夢85 Dream Smoothing , ドリームスムージング Drop Blues , ドロップブルース Drop Green Tint 14 , ドロップグリーンティント14 Drop Shadow , ドロップシャドウ Drop Shadow 3D , ドロップシャドウ3D Drop Water , ドロップウォーター Droste , ドロスト Duck , アヒル Duplicate Bottom , 下部の複製 Duplicate Horizontal , 水平方向の複製 Duplicate Left , 左の複製 Duplicate Right , 右の複製 Duplicate Top , トップの複製 Duplicate Vertical , 垂直方向の複製 Duration , 持続時間 Dusty , ほこりっぽい Dynamic Range Increase , ダイナミックレンジの増加 Eagle , 鷲 Earth , 地球 Earth Tone Boost , アーストーンブースト Easy Skin Retouch , 簡単スキンレタッチ Edge , エッジ Edge Antialiasing , エッジアンチエイリアシング Edge Attenuation , エッジ減衰 Edge Behavior X , エッジ行動X Edge Behavior Y , エッジ行動Y Edge Detect Includes Chroma , エッジディテクトにはクロマが含まれています。 Edge Exponent , エッジ指数 Edge Fidelity , エッジフィデリティ Edge Influence , エッジの影響 Edge Mask , エッジマスク Edge Sensitivity , エッジ感度 Edge Shade , エッジシェード Edge Simplicity , エッジのシンプルさ Edge Smoothness , エッジの滑らかさ Edge Thickness , エッジ厚 Edge Threshold , エッジしきい値 Edge Threshold (%) , エッジしきい値(%) Edge-Oriented , エッジ指向 Edges , エッジ Edges (%) , エッジ(%) Edges [Animated] , エッジ[アニメーション] Edges Offsets , エッジオフセット Edges on Fire , 火の上のエッジ Edges-0.5 (beware: Memory-Consuming!) , エッジ-0.5(用心:メモリ消費! Edges-1 (beware: Memory-Consuming!) , エッジ-1(用心:メモリ消費 Edges-2 (beware: Memory-Consuming!) , エッジ-2(用心:メモリを消費する Edgy Ember , エッジの効いたこはく Effect Strength , 効果の強さ Effect X-Axis Scaling , 効果 X軸スケーリング Effect Y-Axis Scaling , 効果 Y軸スケーリング Eight Layers , 8つのレイヤー Eight Threads , 八つのスレッド Elegance 38 , エレガンス 38 Elephant , ぞうさん Elevation , 昇降量 Elevation (%) , 標高(%) Ellipse , 楕円 Ellipse Painting , 楕円の絵画 Ellipse Ratio , 楕円率 Ellipsionism , エリプシオンしゅぎ Ellipsionism Opacity , 楕円形 不透明度 Ellipsoid , 楕円体 Emboss , エンボス Enable Antialiasing , アンチエイリアシングを有効にする Enable Interpolated Motion , 補間モーションを有効にする Enable Morphology , 形態素解析を有効にする Enable Paintstroke , ペイントストロークを有効にする Enable Segmentation , セグメンテーションを有効にする Enchanted , エンチャンテッド End Color , エンドカラー End Frame Number , エンドフレーム番号 End of Mid-Tones , ミッドトーン終了 End Point Connectivity , エンドポイント接続性 End Point Rate (%) , エンドポイント率(%) Ending Angle , 終了角度 Ending Color , エンディングカラー Ending Feathering , エンディングフェザーリング Ending Point (%) , 終了点(%) Ending Scale (%) , 終了規模(%) Ending Value , エンディングバリュー Ending X-Centering , エンディングXセンタリング Ending Y-Centering , エンディングYセンター Engrave , 刻印 Enhance Detail , 詳細を強調する Enhance Details , 詳細を強化する Equalization , 平衡化 Equalization (%) , 均等化(%) Equalize , イコライズ Equalize and Normalize , イコライズとノーマライズ Equalize at Each Step , 各ステップで均等化 Equalize HSI-HSL-HSV , HSI-HSL-HSVを均等化する Equalize HSV , HSVを均等化 Equalize Light , イコライズライト Equalize Local Histograms , 局所ヒストグラムの均等化 Equalize Shadow , イコライズシャドウ Equation Plot [Parametric] , 方程式のプロット [パラメトリック] Equation Plot [Y=f(X)] , 式プロット [Y=f(X)] Equirectangular to Nadir-Zenith , ナディール天頂に直角 Eric Ellerbrock (14) , エリック・エラブロック (14) Erosion , 浸食 Erosion / Dilation , 浸食・脱毛 Etch Tones , エッチトーン Eterna for Flog , フログのためのエテルナ Euclidean , ユークリッド Euclidean - Polar , ユークリッド-極 Exclusion , 除外 Exp , エクスポ Exp(z) , エクスポ(z) Expand , 展開 Expand Background Reconstruction , 背景の再構築を拡大 Expand Shadows , 影の拡大 Expand Size , 拡張サイズ Expanding Mirrors , 拡大鏡 Expired (fade) , 期限切れ(フェード Expired (polaroid) , 期限切れ(ポラロイド Expired 69 , 期限切れ69 Exponent , 指数 Exponent (Imaginary) , 指数(虚数 Exponent (Real) , 指数(実数 Exponential , 指数的 Export RGB-565 File , エクスポートRGB-565ファイル Exposure , 露出 Expression , 表現方法 Extend 1px , 1px拡張 External Transparency , 外部からの透明性 Extra Smooth , エクストラ・スムース Extract Foreground [Interactive] , 前景を抽出する [インタラクティブ] Extract Objects , オブジェクトの抽出 Extrapolate Color Spots on Transparent Top Layer , 透明トップレイヤーの色点を外挿し Extrapolate Colors As , 色の外挿 Extrapolated Colors + Lineart , 外挿し色+ラインアート Extreme , 極端な F(X) , エフ Factor , 因子 Fade , フェード Fade End , フェードエンド Fade End (%) , フェードエンド(%) Fade Layers , フェードレイヤー Fade Start , フェードスタート Fade Start (%) , フェード開始 (%) Fade to Green , フェード・トゥ・グリーン Faded , 色あせた Faded (alt) , 色あせた(alt) Faded (analog) , フェード(アナログ Faded (extreme) , 色あせた(極端 Faded (vivid) , 色あせた(鮮やかな Faded 47 , フェード47 Faded Green , フェードグリーン Faded Look , フェードルック Faded Print , フェードプリント Faded Retro 01 , フェードレトロ01 Faded Retro 02 , フェードレトロ02 Fading , フェージング Fading Shape , フェージング形状 Fall Colors , 秋の色 Far Point Deviation , 極点偏差 Fast , ファスト Fast (Approx.) , 速い (約 ). Fast (Low Precision) Preview , 高速(低精度)プレビュー Fast Approximation , 高速近似 Fast Blend , 高速ブレンド Fast Blend Preview , 高速ブレンドプレビュー Fast Recovery , 高速回復 Fast Resize , 高速リサイズ Faux Infrared , 擬似赤外線 Feathering , フェザーリング Feature Analyzer Smoothness , フィーチャーアナライザーの滑らかさ Feature Analyzer Threshold , フィーチャーアナライザしきい値 Felt Pen , フェルトペン FFT Preview , FFTプレビュー Fibers , 繊維 Fibers Amplitude , 繊維の振幅 Fibers Smoothness , 繊維の滑らかさ Fibrousness , 繊維性 Fidelity Chromaticity , フィデリティ 色度 Fidelity Smoothness (Coarsest) , フィデリティの滑らかさ(最も粗い Fidelity Smoothness (Finest) , フィデリティ・スムースネス(最高級 Fidelity to Target (Coarsest) , ターゲットへの忠実度(コアス Fidelity to Target (Finest) , ターゲットへのフィデリティ(フィネスト Filename , ファイル名 Fill Holes , 充填穴 Fill Holes % , 塗りつぶし穴 %. Fill Transparent Holes , 透明な穴を埋める Filled , 満たされた Filled Circles , 塗りつぶした円 Filling , 充填 Film 0987 , フィルム0987 Film 9879 , フィルム9879 Film Highlight Contrast , フィルムハイライトコントラスト Film Print 01 , フィルムプリント01 Film Print 02 , フィルムプリント 02 Filmic , フィルム Filter Design , フィルター設計 FilterGrade Cinematic (8) , フィルタグレードシネマ (8) Final Image , 最終画像 Fine , ファイン Fine 2 , ファイン2 Fine Details Smoothness , 細部の滑らかさ Fine Details Threshold , 細部のしきい値 Fine Noise , ファインノイズ Fine Scale , ファインスケール Finest (slower) , 最上級(遅め) Finger Paint , フィンガーペイント Finger Size , 指のサイズ Fire Effect , 火の効果 Fireworks , 花火 First , 最初の First Color , ファーストカラー First Frame , 最初のフレーム First Offset , 最初のオフセット First Radius , 第一半径 First Size , ファーストサイズ Fish-Eye , フィッシュアイ Fish-Eye Effect , フィッシュアイ効果 Fitting Function , フィット機能 Five Layers , 5つのレイヤー Flag , 旗 Flag (256) , フラグ (256) Flat , フラット Flat 30 , フラット30 Flat Color , フラットカラー Flat Regions Removal , フラットリージョンの除去 Flat-Shaded , フラットシェード Flatness , 平坦度 Flavin , フラビン Flip , フリップ Flip & Rotate Blocs , ブロックの反転と回転 Flip Cross-Hatch , フリップクロスハッチ Flip Left / Right , フリップ左/右 Flip Left/Right , 左/右反転 Flip The Pattern , パターンを反転させる Flip Tolerance , フリップ公差 Flower , 花 Focale , フォカーレ Foggy Night , 霧の夜 Folder Name , フォルダ名 Folger 50 , フォルガー50 Font Colors , フォントの色 Font Height (px) , フォントの高さ (px) Force Gray , フォースグレー Force Re-Download from Scratch , スクラッチからの強制再ダウンロード Force Tiles to Have Same Size , 瓦の大きさを強制的に同じにする Force Transparency , 強制透明化 Foreground Color , 前景色 Form , 形態 Formula , 式 Forward , 前方 Forward Horizontal , 前方水平 Forward Horizontal , 前方水平 Forward Vertical , 前方垂直 Four Layers , 4つの層 Four Threads , 四つのスレッド Fourier Analysis , フーリエ解析 Fourier Filtering , フーリエフィルタリング Fourier Transform , フーリエ変換 Fourier Watermark , フーリエ電子透かし FOV , 視野 Fractal Noise , フラクタルノイズ Fractal Points , フラクタルポイント Fractal Set , フラクタルセット Fractal Whirl , フラクタルの渦巻き Fractalize , フラクタル化 Fractured Clouds , 分裂した雲 Fragment Blur , フラグメントブラー Frame (px) , フレーム(px) Frame [Blur] , フレーム [ぼかし] Frame [Cube] , フレーム【キューブ Frame [Fuzzy] , フレーム [ファジー] Frame [Mirror] , フレーム【ミラー Frame [Painting] , フレーム [絵画] Frame [Pattern] , フレーム[パターン] Frame [Regular] , フレーム [レギュラー] Frame [Round] , フレーム[丸] Frame [Smooth] , フレーム[スムース] Frame as a New Layer , 新しいレイヤーとしてのフレーム Frame Color , フレーム色 Frame Files Format , フレームファイル形式 Frame Format , フレームフォーマット Frame Size , フレームサイズ Frame Skip , フレームスキップ Frame Type , フレームのタイプ Frame Width , フレーム幅 Frames , フレーム Frames Offset , フレームオフセット Freaky B&W , 気紛れな白黒 Freaky Details , フリーキーの詳細 Freeze , 凍結 French Comedy , フレンチコメディ Frequency , 周波数 Frequency (%) , 頻度(%) Frequency Analyzer , 周波数分析器 Frequency Range , 周波数範囲 Freqy Pattern , フリーキーパターン Friends Hall of Fame , フレンド殿堂 From Input , 入力から From Reference Color , リファレンスカラーから Frosted , 曇らされた Frosted Beach Picnic , フロストビーチピクニック Fruits , 果物 Fuji 160C , 富士山160C Fuji 160C + , 富士山160C+の Fuji 160C ++ , 富士山160C ++。 Fuji 160C - , 富士山160C Fuji 3510 (Constlclip) , 富士山3510(コンストレクリップ) Fuji 3510 (Constlmap) , 富士山3510 (コンストマップ) Fuji 3510 (Cuspclip) , 富士山3510(カスクリップ Fuji 3513 (Constlclip) , 富士山3513 (コンストレクリップ) Fuji 3513 (Constlmap) , 富士山3513 (コンストラルマップ) Fuji 3513 (Cuspclip) , 富士山3513(カスクリップ Fuji 400H , 富士山400H Fuji 400H + , 富士山400H+富士山400H Fuji 400H ++ , 富士山400H+++。 Fuji 400H - , 富士山400H Fuji 800Z , 富士800Z Fuji 800Z + , 富士山800z+富士山800z Fuji 800Z ++ , 富士山800Z+++。 Fuji 800Z - , 富士山800Z Fuji Astia 100F , 富士アスティア100F Fuji FP 100C , 富士FP100C Fuji FP-100c , フジエフピー100c Fuji FP-100c (alt) , 富士山FP-100c (alt) Fuji FP-100c + , 富士山FP-100c+富士山FP-100c Fuji FP-100c ++ , 富士山FP-100c ++。 Fuji FP-100c +++ , 富士山FP-100c ++++++。 Fuji FP-100c ++a , 富士山FP-100c ++a Fuji FP-100c - , 富士山FP-100c Fuji FP-100c -- , 富士山FP-100c Fuji FP-100c Cool , 富士山FP-100c クール Fuji FP-100c Cool + , 富士山FP-100cクール+α Fuji FP-100c Cool ++ , 富士山FP-100cクール+++。 Fuji FP-100c Cool - , 富士山FP-100c クール Fuji FP-100c Cool -- , 富士山FP-100c クール Fuji FP-100c Negative , 富士山FP-100cネガ Fuji FP-100c Negative + , 富士山FP-100cネガティブ+α Fuji FP-100c Negative ++ , 富士山FP-100cネガティブ+++。 Fuji FP-100c Negative +++ , 富士山FP-100cネガティブ++++++。 Fuji FP-100c Negative ++a , 富士山FP-100cネガティブ++a Fuji FP-100c Negative - , 富士山FP-100c ネガティブ Fuji FP-100c Negative -- , 富士山FP-100cネガ Fuji FP-3000b , 富士FP-3000b Fuji FP-3000b + , 富士山FP-3000b+富士山FP-3000b Fuji FP-3000b ++ , 富士山FP-3000b ++。 Fuji FP-3000b +++ , 富士山FP-3000b +++++。 Fuji FP-3000b - , 富士山FP-3000b Fuji FP-3000b -- , 富士山FP-3000b Fuji FP-3000b HC , 富士山FP-3000b HC Fuji FP-3000b Negative , 富士山FP-3000bネガ Fuji FP-3000b Negative + , 富士山FP-3000bネガティブ+α Fuji FP-3000b Negative ++ , 富士山FP-3000bネガティブ++。 Fuji FP-3000b Negative +++ , 富士山FP-3000bネガティブ++++++。 Fuji FP-3000b Negative - , 富士山FP-3000bネガ Fuji FP-3000b Negative -- , 富士山FP-3000bネガ Fuji FP-3000b Negative Early , 富士山FP-3000bネガティブ初期 Fuji HDR , フジHDR Fuji Ilford Delta 3200 , 富士山イルフォードデルタ3200 Fuji Ilford Delta 3200 + , 富士山イルフォードデルタ3200+α Fuji Ilford Delta 3200 ++ , 富士山イルフォードデルタ3200+++。 Fuji Ilford Delta 3200 - , 富士山イルフォードデルタ3200 Fuji Ilford HP5 , 富士山イルフォードHP5 Fuji Ilford HP5 + , 富士山イルフォードのHP5枚+α Fuji Ilford HP5 ++ , 富士山イルフォードのHP5+++。 Fuji Ilford HP5 - , 富士山イルフォードHP5 Fuji Neopan 1600 , 富士ネオパン1600 Fuji Neopan 1600 + , 富士ネオパン1600+α Fuji Neopan 1600 ++ , 富士ネオパン1600+++で Fuji Neopan 1600 - , 富士ネオパン1600 Fuji Neopan Acros 100 , 富士ネオパンアクロス100 Fuji Provia 100F , 富士プロビア100F Fuji Provia 400F , 富士プロビア400F Fuji Provia 400X , 富士プロビア400X Fuji Sensia 100 , フジセンシア100 Fuji Superia 100 , フジスーペリア100 Fuji Superia 100 + , フジスーペリア100+ Fuji Superia 100 ++ , フジスーペリア100+++。 Fuji Superia 100 - , フジスーペリア100 Fuji Superia 1600 , フジスーペリア1600 Fuji Superia 1600 + , フジスーペリア1600+α Fuji Superia 1600 ++ , フジスーペリア1600+++。 Fuji Superia 1600 - , フジスーペリア1600 Fuji Superia 200 , フジスーペリア200 Fuji Superia 200 XPRO , フジスーペリア200 XPRO Fuji Superia 400 , フジスーペリア400 Fuji Superia 400 + , フジスーペリア400+α Fuji Superia 400 ++ , フジスーペリア400+++。 Fuji Superia 400 - , フジスーペリア400 Fuji Superia 800 , フジスーペリア800 Fuji Superia 800 + , フジスーペリア800+α Fuji Superia 800 ++ , フジスーペリア800+++。 Fuji Superia 800 - , フジスーペリア800 Fuji Superia HG 1600 , フジスーペリアHG 1600 Fuji Superia Reala 100 , フジスーペリアリア100 Fuji Superia X-Tra 800 , フジスーペリアXトラ800 Fuji Velvia 50 , 富士ベルビア50 Fuji XTrans III (15) , 富士 XTrans III (15) Full , フル Full (Allows Multi-Layers) , フル(マルチレイヤー対応 Full (Slower) , フル(低速 Full Bottom/top , フルボトム/トップ Full Colors , フルカラー Full HD Frame Packing , フルHDフレームパッキン Full Layer Stack -Slow!- , フルレイヤースタック -Slow! Full Side by Side Keep Uncompressed , フルサイドバイサイドキープ非圧縮 Full Side by Side Keep Width , フルサイドバイサイドキープ幅 Full Side by Uncompressed , 非圧縮でフルサイド Fusion 88 , フュージョン88 Futuristic Bleak 1 , 未来的な漂白 1 Futuristic Bleak 2 , 未来的なブレイクスルー2 Futuristic Bleak 3 , 未来的な漂流3 Futuristic Bleak 4 , 未来的な漂流 4 Fuzzyness , ファジーネス G'MIC Operator , G'MICオペレータ G/M Smoothness , G/M 滑らかさ Gain , ゲイン Games & Demos , ゲームとデモ Gamma , ガンマ Gamma (%) , ガンマ(%) Gamma Balance , ガンマバランス Gamma Compensation , ガンマの補償 Gamma Equalizer , ガンマ・イコライザー Gaussian , ガウス Gear , 歯車 Generate Random-Colors Layer , ランダムカラーレイヤーの生成 Generic Fuji Astia 100 , ジェネリックフジアスティア100 Generic Fuji Provia 100 , ジェネリックフジプロビア100 Generic Fuji Velvia 100 , ジェネリックフジベルビア100 Generic Kodachrome 64 , 汎用コダクローム64 Generic Kodak Ektachrome 100 VS , ジェネリックコダック エクタクローム100 VS Generic Skin Structure , 一般的な皮膚構造 Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , ジェントルモード(最小輝度と最小赤:青の比率をオーバーライド Geometry , 幾何学 Glamour Glow , グラマーグロー Global , グローバル Global Mapping , グローバルマッピング Glow , グロー Gmicky (Deevad) , Gmicky(ディエバド) Gmicky (Mahvin) , Gmicky(マービン Gmicky - Roddy , Gmicky - ロディ Going for a Walk , 散歩に行く Gold , 金 Golden , ゴールデン Golden (bright) , 金色(明るい Golden (fade) , ゴールデン(フェード Golden (mono) , ゴールデン(モノラル Golden (vibrant) , 金色(鮮やか Golden Gate , ゴールデンゲート Golden Night Softner 43 , ゴールデンナイトソフトナー 43 Golden Sony 37 , ゴールデンソニー37 GoldFX - Bright Spring Breeze , GoldFX - 明るい春の風 GoldFX - Bright Summer Heat , GoldFX - 明るい夏の暑さ GoldFX - Hot Summer Heat , GoldFX - ホットサマーヒート GoldFX - Perfect Sunset 01min , GoldFX - パーフェクトサンセット 01分 GoldFX - Perfect Sunset 05min , GoldFX - パーフェクトサンセット 05分 GoldFX - Perfect Sunset 10min , GoldFX - パーフェクトサンセット10分 GoldFX - Spring Breeze , GoldFX - 春の風 GoldFX - Summer Heat , GoldFX - 夏の暑さ Good Morning , おはようございます Gouraud , グロー GradienNormLinearity , グラディエンノルム直線性 GradienNormSmoothness , グラディエンノルム平滑度 Gradient , グラデーション Gradient [Corners] , グラデーション [コーナー] Gradient [Custom Shape] , グラデーション[カスタムシェイプ] Gradient [from Line] , グラデーション [線から] Gradient [Linear] , 勾配 [線形] Gradient [Radial] , グラデーション [放射状] Gradient [Random] , グラデーション [ランダム] Gradient Norm , グラデーションノルム Gradient Preset , グラデーションプリセット Gradient RGB , グラデーションRGB Gradient Smoothness , 勾配の滑らかさ Gradient Values , グラデーション値 Grain , 穀物 Grain (Highlights) , 穀物(ハイライト Grain (Midtones) , グレイン(中間調 Grain (Shadows) , 粒(影 Grain Extract , 穀物エキス Grain Merge , グレイン マージ Grain Only , 穀物のみ Grain Scale , 穀物のスケール Grain Tone Fading , グレイントーンフェージング Grain Type , 穀物の種類 Grainext , グレインネクスト Grainextract , グレインエキス Grainmerge , グレインマージ Granularity , 粒度 Graphic Boost , グラフィックブースト Graphic Colours , グラフィックカラー Graphic Novel , グラフィックノベル Graphix Colors , グラフィックスカラー Grayscale , グレースケール Greece , ギリシャ Green , グリーン Green 15 , グリーン15 Green 2025 , グリーン2025 Green Action , グリーンアクション Green Afternoon , グリーンアフタヌーン Green Blues , グリーンブルース Green Conflict , グリーンコンフリクト Green Day 01 , グリーンデー01 Green Day 02 , グリーンデー02 Green Factor , グリーンファクター Green G09 , グリーンG09 Green Indoor , 緑の屋内 Green Level , グリーンレベル Green Light , グリーンライト Green Mono , グリーンモノ Green Rotations , 緑の回転 Green Shift , グリーンシフト Green Smoothness , 緑の滑らかさ Green Wavelength , 緑の波長 Green Yellow , グリーンイエロー Green-Blue , 緑青 Green-Red , 緑赤 Greenish Contrasty , 緑のコントラスト Greenish Fade , 緑がかったフェード Greenish Fade 1 , 緑がかったフェード1 Grey , グレー Greyscale , グレースケール Grid , グリッド Grid [Cartesian] , グリッド [デカルト] Grid [Hexagonal] , グリッド [六角形] Grid [Triangular] , グリッド [三角形] Grid Divisions , グリッド分割 Grid Smoothing , グリッドのスムージング Grid Width , グリッド幅 Gritty , グリッティ Grow Alpha , アルファを成長させる Guide As , ガイド Guide Mix , ガイドミックス Guide Recovery , ガイドリカバリー Gum Leaf , ガムの葉 Gummy , グミ Gyroid , ジャイロイド H Cutoff , Hカットオフ Hackmanite , ハックマナイト Hair Locks , ヘアロック HaldCLUT , ハルドクラット HaldCLUT Filename , HaldCLUT ファイル名 Half Bottom/top , ハーフボトム/トップ Half Side by Side , ハーフサイドバイサイド Halftone , ハーフトーン Halftone Shapes , ハーフトーンシェイプ Hanoi Tower , ハノイタワー Happyness 133 , 幸福感133 Hard , ハード Hard Dark , ハードダーク Hard Light , ハードライト Hard Mix , ハードミックス Hard Sketch , ハードスケッチ Hard Teal Orange , ハードティールオレンジ Hardlight , ハードライト Hardmix , ハードミックス Harsh Day , 晴天の日 Harsh Sunset , ハーシュ・サンセット HCY , HCY HDR Effect (Tone Map) , HDR効果(トーンマップ Heart , ハート Hearts , ハート Hearts (Outline) , ハーツ(概要 Hedcut (Experimental) , ヘドカット(実験 Height , 高さ Height (%) , 高さ(%) Helios , ヘリオス Herderite , ヘルデライト Heulandite , ホイランド人 Hexagon , 六角形 Hexagonal , 六角形 Hiddenite , ヒドゥンダイト High , 高 High (Slower) , 高(遅い High Frequency , 高周波数 High Frequency Layer , 高周波層 High Key , ハイキー High Pass , ハイパス High Quality , 高品質 High Scale , ハイスケール High Speed , 高速 High Value , 高価値 Higher Mask Threshold (%) , 高いマスク閾値 (%) Highlight , ハイライト Highlight (%) , ハイライト(%) Highlight Bloom , ハイライトブルーム Highlights , ハイライト Highlights Abstraction , ハイライト 抽象化 Highlights Brightness , ハイライトの明るさ Highlights Color Intensity , ハイライト色強度 Highlights Crossover Point , ハイライトクロスオーバーポイント Highlights Hue , ハイライト色相 Highlights Lightness , ハイライトの明るさ Highlights Protection , ハイライト保護 Highlights Selection , ハイライトセレクション Highlights Threshold , ハイライトしきい値 Highlights Zone , ハイライトゾーン Highres CLUT , ハイグリースCLUT Hilutite , ヒルタイト Histogram , ヒストグラム Histogram Analysis , ヒストグラム解析 Histogram Transfer , ヒストグラム転送 Hokusai: The Great Wave , 北斎:大波 Homogeneity , 同質性 Hong Kong , 香港 Hope Poster , 希望のポスター Horisontal Length , ホリゾンタルの長さ Horizon Leveling (deg) , ホライゾンレベリング(deg) Horizontal , 水平方向 Horizontal (%) , 水平方向(%) Horizontal Amount , 横軸量 Horizontal Array , 水平配列 Horizontal Blur , 水平ぼかし Horizontal Length , 水平方向の長さ Horizontal Size (%) , 水平サイズ(%) Horizontal Stripes , 横縞 Horizontal Tiles , 横型タイル Horizontal Warp Only , 水平ワープのみ Horror Blue , ホラーブルー Hot , ホット Hot (256) , ホット (256) Hough Sketch , ハフスケッチ Hough Transform , ハフトランスフォーム House , 家 Householder , 世帯主 Howlite , ハウライト HSI , エイチエスアイ HSI [all] , HSI [すべて] HSI [Intensity] , HSI [強度] HSI8 , エイチエスアイエイト HSL , HSL HSL [all] , HSL [すべて] HSL [Lightness] , HSL [軽さ] HSL Adjustment , HSL調整 HSL8 , HSL8 HSV , HSV HSV [all] , HSV [すべて] HSV [Hue] , HSV [色相] HSV [Saturation] , HSV [飽和度] HSV [Value] , HSV [値] HSV Select , HSV 選択 HSV8 , HSV8 Hue , 色相 Hue (%) , 色相(%) Hue Band , 色相帯 Hue Factor , 色相因子 Hue Lighten-Darken , 色相を明るくする-濃くする Hue Max (%) , 色相最大値 (%) Hue Min (%) , 色相 最小 (%) Hue Offset , 色相オフセット Hue Range , 色相範囲 Hue Shift , 色相シフト Hue Smoothness , 色相の滑らかさ Human 2 , 人間2 Human 1 , 人間1 Human 2 , 人間2 Hybrid Median - Medium Speed Softest Output , ハイブリッドメディアン - 中速ソフト出力 Hydracore , ハイドラコア Hyla 68 , ハイラ 68 Hyper Droste , ハイパードロスト Hypersthene , ハイパーステン Hypnosis , 催眠術 Hypressen , ハイプレス Iain Noise Reduction 2019 , イアインノイズリダクション2019 Iain's Fast Denoise , アイアンズファストデノワーズ Identity , アイデンティティ Ignore , 無視 Ignore Current Aspect , 現在のアスペクトを無視する Ilford Delta 100 , イルフォードデルタ100 Ilford Delta 3200 , イルフォードデルタ3200 Ilford Delta 400 , イルフォードデルタ400 Ilford FP4 Plus 125 , イルフォード FP4プラス125 Ilford HP5 Plus 400 , イルフォードHP5プラス400 Ilford HPS 800 , イルフォードHPS 800 Ilford Pan F Plus 50 , イルフォードパンFプラス50 Ilford XP2 , イルフォードXP2 Illuminate 2D Shape , 2次元形状を照らす Illumination , イルミネーション Illustration Look , イラストルック Image , イメージ Image + Background , 画像+背景 Image + Colors (2 Layers) , 画像+カラー(2レイヤー Image + Colors (Multi-Layers) , 画像+カラー(マルチレイヤー Image Contour Dimensions , 画像の輪郭寸法 Image Smoothness , 画像の滑らかさ Image to Grab Color from (.Png) , (.Png)から色を取得する画像 Image Weight , 画像の重さ Import Data , データのインポート Import RGB-565 File , インポートRGB-565ファイル Impulses 5x5 , インパルス5倍 Impulses 7x7 , インパルス7x7 Impulses 9x9 , 衝動 9x9 Inch , インチ Include Opacity Layer , 不透明度レイヤーを含む IncreaseChroma1 , 彩度を上げる Increasing , 増加する Indoor Blue , インドアブルー Industrial 33 , 産業用33 Influence of Color Samples (%) , 色見本の影響(%) Information , 情報のご案内 Init. Resolution , Init.決議 Init. Type , Init.タイプ Init. With High Gradients Only , Init.高勾配のみ Initial Density , 初期密度 Initialization , 初期化 Ink Wash , インクウォッシュ Inner , 内側 Inner Fading , インナーフェージング Inner Length , 内側の長さ Inner Radius , 内側半径 Inner Radius (%) , 内側半径(%) Inner Shade , インナーシェード Inpaint [Holes] , インペイント[穴] Inpaint [Morphological] , インペイント【形態素 Inpaint [Multi-Scale] , インペイント[マルチスケール] Inpaint [Patch-Based] , インペイント[パッチベース] Inpaint [Transport-Diffusion] , インペイント【トランスポート・ディフュージョン Input , にゅうりょく Input Folder , 入力フォルダ Input Frame Files Name , 入力フレームファイル名 Input Guide Color , 入力ガイドカラー Input Layers , 入力レイヤ Input Transparency , 入力の透明性 Input Type , 入力タイプ Insert New CLUT Layer , 新規CLUTレイヤの挿入 Inside , 内部 Inside Color , 中の色 Inside-Out , インサイドアウト Instant [Consumer] (54) , インスタント [消費者] (54) Instant [Pro] (68) , インスタント[プロ] (68) Instant-C , インスタントC Intarsia , インターシャ Intensity , 強度 Intensity of Purple Fringe , パープルフリンジの強度 Inter-Frames , フレーム間 Interlace Horizontal , インターレース水平 Interlace Vertical , インターレース縦型 Interp , 間 Interpolate , 補間 Interpolation , 補間 Interpolation Type , 補間タイプ Inverse , 逆 Inverse Depth Map , 逆デプスマップ Inverse Radius , 逆半径 Inverse Transform , 逆変換 Inversions , 反転 Invert Background / Foreground , 背景/前景を反転 Invert Blur , インバートブラー Invert Canvas Colors , キャンバスの色を反転させる Invert Colors , インバートカラー Invert Image Colors , イメージの色を反転させる Invert Luminance , 反転輝度 Invert Mask , インバートマスク Inward , 内向き Isophotes , 等食動物門 Isotropic , 等方性 Iteration , 反復 Iterations , イテレーション Iters , イタース J.T. Semple (14) , J.T.センプル (14) Japanese Maple Leaf , もみじの葉 Jawbreaker , ジョウブレイカー Jet , ジェット Jet (256) , ジェット (256) JPEG Artefacts , JPEGアーテファクト JPEG Smooth , JPEG スムーズ Julia , ジュリア Just Peachy , ジャストピーチ K-Factor , ケイファクタ K-Tone Vintage Kodachrome , Kトーン ヴィンテージ コダクローム Kaleidoscope [Blended] , 万華鏡【ブレンド Kaleidoscope [Polar] , 万華鏡【極 Kaleidoscope [Symmetry] , 万華鏡【シンメトリー Kandinsky: Squares with Concentric Circles , カンディンスキー同心円の正方形 Kandinsky: Yellow-Red-Blue , カンディンスキー:黄・赤・青 Keep , 飼う Keep Aspect Ratio , アスペクト比の維持 Keep Base Layer as Input Background , ベースレイヤーを入力背景として保持 Keep Borders Square , キープボーダーズスクエア Keep Color Channels , カラーチャンネルを維持する Keep Colors , 色を保つ Keep Detail , 詳細を保持する Keep Detail Layer Separate , ディテールレイヤーを分離しておく Keep Iterations as Different Layers , イテレーションを異なるレイヤーとして保持する Keep Layers Separate , レイヤーを分離しておく Keep Original Image Size , 元の画像サイズを維持する Keep Original Layer , 元のレイヤーを維持する Keep Tiles Square , タイルを正方形に保つ Keep Transparency in Output , アウトプットの透明性を保つ Keftales , ケフタールもく Kernel , カーネル Kernel Multiplier , カーネル乗数 Kernel Type , カーネルタイプ Key Factor , キーファクター Key Frame Rate , キーフレームレート Key Shift , キーシフト Key Smoothness , キーの滑らかさ Keypoint Influence (%) , キーポイントの影響力(%) Killstreak , キルストリーク Kitaoka Spin Illusion , 北岡スピン錯視 Klee: Death and Fire , クレー死と炎 Klee: In the Style of Kairouan , クレー回廊庵のスタイルで Klee: Oriental Pleasure Garden Anagoria , クレーオリエンタルプレジャーガーデン アナゴリア Klee: Polyphony 2 , クレーポリフォニー2 Klee: Red Waistcoat , クレー赤いウエストコート Klimt: The Kiss , クリムト:キス Kodak 1-8 , コダック 1-8 Kodak 2383 (Constlclip) , コダック2383 (コンストラクションクリップ) Kodak 2383 (Constlmap) , コダック2383 (コンストラクションマップ) Kodak 2383 (Cuspclip) , コダック 2383 (カスプクリップ) Kodak 2393 (Constlclip) , コダック2393 (コンストラクションクリップ) Kodak 2393 (Constlmap) , コダック2393 (Constlmap) Kodak 2393 (Cuspclip) , コダック2393(カスクリップ Kodak BW 400 CN , コダックBW 400 CN Kodak E-100 GX Ektachrome 100 , コダック E-100 GX エクタクローム100 Kodak Ektachrome 100 VS , コダック エクタクローム100 VS Kodak Ektar 100 , コダックEktar 100 Kodak Elite 100 XPRO , コダックエリート100 XPRO Kodak Elite Chrome 200 , コダックエリートクローム200 Kodak Elite Chrome 400 , コダックエリートクローム400 Kodak Elite Color 200 , コダックエリートカラー200 Kodak Elite Color 400 , コダックエリートカラー400 Kodak Elite ExtraColor 100 , コダックエリートエクストラカラー100 Kodak HIE (HS Infra) , コダックHIE(HS赤外線 Kodak Kodachrome 200 , コダックコダクローム200 Kodak Kodachrome 25 , コダックコダクローム25 Kodak Kodachrome 64 , コダックコダクローム64 Kodak Portra 160 , コダック ポルトラ 160 Kodak Portra 160 + , コダック ポルトラ160+α Kodak Portra 160 ++ , コダック ポルトラ160+++。 Kodak Portra 160 - , コダック ポルトラ 160 Kodak Portra 160 NC , コダック ポルトラ160 NC Kodak Portra 160 NC + , コダック ポルトラ160 NC+ Kodak Portra 160 NC ++ , コダック ポルトラ160 NC +++。 Kodak Portra 160 NC - , コダック ポルトラ 160 NC Kodak Portra 160 VC , コダック ポルトラ160 VC Kodak Portra 160 VC + , コダック ポルトラ160 VC+ Kodak Portra 160 VC ++ , コダック ポルトラ160 VC+++。 Kodak Portra 160 VC - , コダック ポルトラ 160 VC Kodak Portra 400 , コダック ポルトラ400 Kodak Portra 400 + , コダック ポルトラ400+α Kodak Portra 400 ++ , コダック ポルトラ400+++。 Kodak Portra 400 - , コダック ポルトラ400 Kodak Portra 400 NC , コダック ポルトラ400 NC Kodak Portra 400 NC + , コダック ポルトラ400 NC+ Kodak Portra 400 NC ++ , コダック ポルトラ400NC+++。 Kodak Portra 400 NC - , コダック ポルトラ400 NC Kodak Portra 400 UC , コダック ポルトラ400 UC Kodak Portra 400 UC + , コダック ポルトラ400 UC+ Kodak Portra 400 UC ++ , コダック ポルトラ400UC+++。 Kodak Portra 400 UC - , コダック ポルトラ400 UC Kodak Portra 400 VC , コダック ポルトラ400 VC Kodak Portra 400 VC + , コダック ポルトラ400 VC+α Kodak Portra 400 VC ++ , コダック ポルトラ 400 VC ++ Kodak Portra 400 VC - , コダック ポルトラ400 VC Kodak Portra 800 , コダック ポルトラ800 Kodak Portra 800 + , コダック ポルトラ800+α Kodak Portra 800 ++ , コダック ポルトラ800+++。 Kodak Portra 800 - , コダック ポルトラ800 Kodak Portra 800 HC , コダック ポルトラ800 HC Kodak T-Max 100 , コダックT-Max 100 Kodak T-Max 3200 , コダックT-Max 3200 Kodak T-MAX 3200 (alt) , コダック T-MAX 3200 (alt) Kodak T-MAX 3200 + , コダックT-MAX 3200+ Kodak T-MAX 3200 ++ , コダックT-MAX 3200+++。 Kodak T-MAX 3200 - , コダックT-MAX 3200 Kodak T-Max 400 , コダックT-Max 400 Kodak TMAX 3200 , コダックTMAX 3200 Kodak TMAX 400 , コダックTMAX 400 Kodak TRI-X 1600 , コダック TRI-X 1600 Kodak TRI-X 400 , コダック TRI-X 400 Kodak TRI-X 400 (alt) , コダック TRI-X 400 (alt) Kodak TRI-X 400 + , コダックTRI-X 400+(コダックTRI-X 400)+(コダックTRI-X 400 Kodak TRI-X 400 ++ , コダック TRI-X 400 +++。 Kodak TRI-X 400 - , コダック TRI-X 400 Kookaburra , コカブラ Korben 214 , テルン 214 Kuwahara , 桑原 Kuwahara on Painting , 絵画についての桑原 Kyler Holland (10) , カイラー・ホランド (10) L1-Norm , エルワンノルム L2-Norm , エルツーノルム Lab , 研究室 Lab (Chroma Only) , ラボ(クロマのみ Lab (Distinct) , 研究室(区別) Lab (Luma Only) , 研究室(ルーマのみ Lab (Luma/Chroma) , ラボ (Luma/Chroma) Lab (Mixed) , 研究室(混合 Lab [a-Chrominance] , 研究室 [a-クロミナンス] Lab [ab-Chrominances] , 研究室[ab-クロミナンス] Lab [all] , 研究室 [すべて] Lab [b-Chrominance] , 研究室[b-クロミナンス] Lab [Lightness] , ラボ[軽さ] LAB-A , ラボエー LAB-B , ラボビー LAB-Lightness , LAB-明るさ LAB8 , ラボ8 Lanczos , ランチョスぞく Lanczsos , ランチョスぞく Landscape , 風景 Landscape-1 , ランドスケープ-1 Landscape-10 , 風景10 Landscape-2 , ランドスケープ-2 Landscape-3 , ランドスケープ-3 Landscape-4 , ランドスケープ-4 Landscape-5 , ランドスケープ-5 Landscape-6 , ランドスケープ-6 Landscape-7 , ランドスケープ7 Landscape-8 , ランドスケープ8 Landscape-9 , ランドスケープ9 Laplacian , ラプラシアン Large , 大 Large Noise , 大騒音 Last , ラスト Last Frame , 最後のフレーム Late Afternoon Wanderlust , 昼下がりの放浪記 Late Sunset , 晩年の日没 Lava , 溶岩 Lava Lamp , ラバランプ Layer , レイヤ Layer Processing , レイヤ処理 Layers to Tiles , レイヤーからタイルへ Lch , Lch Lch [all] , Lch [すべて] Lch [c-Chrominance] , Lch [c-クロミナンス] Lch [ch-Chrominances] , Lch [ch-クロミナンス] Lch [h-Chrominance] , Lch [h-クロミナンス] LCH8 , エルシーエイチハチ Leaf , 葉っぱ Leaf Color , 葉の色 Leaf Opacity (%) , 葉の不透明度 (%) Leak Type , リークタイプ Left , 左 Left Foreground , 左前景 Left / Right Blur (%) , 左/右ぼかし (%) Left and Right Background , 左右の背景 Left and Right Foreground , 左右の前景 Left and Right Image Streams , 左右のイメージストリーム Left Diagonal Foreground , 左斜め前景 Left Foreground , 左前景 Left Position , 左位置 Left Side Orientation , 左側の向き Left Slope , 左斜面 Left Stream Only , 左ストリームのみ Lena , レナ Length , 長さ Leno , レノ Lenox 340 , レノックス340 Lenticular Density LPI , レンチキュラー密度LPI Lenticular Orientation , レンチキュラーの向き Lenticular Print , レンチキュラープリント Level , レベル Level Frequency , レベル周波数 Levels , レベル Life Giving Tree , ライフギビングツリー Lifestyle & Commercial-1 , ライフスタイル&コマーシャル-1 Lifestyle & Commercial-10 , ライフスタイル&コマーシャル-10 Lifestyle & Commercial-2 , ライフスタイル&コマーシャル-2 Lifestyle & Commercial-3 , ライフスタイル&コマーシャル-3 Lifestyle & Commercial-4 , ライフスタイル&コマーシャル-4 Lifestyle & Commercial-5 , ライフスタイル&コマーシャル-5 Lifestyle & Commercial-6 , ライフスタイル&コマーシャル-6 Lifestyle & Commercial-7 , ライフスタイル&コマーシャル-7 Lifestyle & Commercial-8 , ライフスタイル&コマーシャル-8 Lifestyle & Commercial-9 , ライフスタイル&コマーシャル-9 Light , 灯り Light (blown) , ライト(吹いた Light Angle , ライトアングル Light Color , 淡い色 Light Direction , 光の方向 Light Effect , 光の効果 Light Glow , 光の輝き Light Grey , ライトグレー Light Leaks , 光の漏れ Light Motive , 光の動機 Light Patch , ライトパッチ Light Rays , ライトレイ Light Smoothness , 軽い滑らかさ Light Strength , 軽い強さ Light Type , ライトタイプ Light-X , ライトエックス Light-Y , ライトY Light-Z , ライトゼット Lighten , 軽くする Lighten Edges , エッジを軽くする Lighter , ライター Lighting , 照明 Lighting Angle , 照明角度 Lightness , 軽さ Lightness (%) , 軽さ(%) Lightness Factor , 軽度係数 Lightness Level , 明るさレベル Lightness Max (%) , 明るさ最大 (%) Lightness Min (%) , 明るさ 最小(%) Lightness Shift , 明るさシフト Lightness Smoothness , 軽さ 滑らかさ Lightning , ライトニング Lighty Smooth , 軽快なスムース Limit Hue Range , リミット色相範囲 Line , ライン Line Opacity , ラインの不透明度 Line Precision , ライン精度 Linear , リニア Linear Burn , リニアバーン Linear Light , リニアライト Linear RGB , リニアRGB Linear RGB [All] , リニアRGB [すべて] Linear RGB [Blue] , リニアRGB [青] Linear RGB [Green] , リニアRGB [緑] Linear RGB [Red] , リニアRGB [赤] Linearburn , リニアバーン Linearity , 直線性 Linearlight , リニアライト Lineart , ラインアート Lineart + Color Spots , ラインアート+カラースポット Lineart + Color Spots + Extrapolated Colors , 線画+色点+外挿し色 Lineart + Colors , ラインアート+カラー Lineart + Extrapolated Colors , 線画+外挿し色 Lines , ライン Lines (256) , 行数 (256) Linf-Norm , リンフノルム Linify , リニファイ Lion , 獅子 Lissajous , リサージュ Lissajous [Animated] , リサージュ【アニメ化 Lissajous Spiral , リサージュスパイラル Little , 小 Little Blue , リトルブルー Little Cyan , リトルシアン Little Green , リトルグリーン Little Key , リトルキー Little Magenta , リトルマゼンタ Little Red , リトルレッド Little Yellow , リトルイエロー LN Amplititude , LN振幅 LN Amplitude , LN振幅 LN Average-Smoothness , LN平均平滑度 LN Neightborhood-Smoothness , LNナイトボーフッド-スムースネス LN Size , LNサイズ Local Normalisation , 局所的な正規化 Local Contrast , ローカルコントラスト Local Contrast Effect , 局所的なコントラスト効果 Local Contrast Enhance , 局所的なコントラストの強化 Local Contrast Enhancement , 局所的なコントラストの強化 Local Contrast Style , ローカルコントラストスタイル Local Detail Enhancer , ローカル ディテール エンハンサー Local Normalization , 局所正規化 Local Orientation , 現地オリエンテーション Local Processing , ローカル処理 Local Similarity Mask , 局所類似性マスク Local Variance Normalization , 局所分散正規化 Lock Return Scaling to Source Layer , ロック リターン ソース レイヤへのスケーリング Lock Source , ロックソース Lock Uniform Sampling , ロックユニフォームサンプリング Log(z) , 対数 Logarithmic Distortion , 対数歪み Logarithmic Distortion Axis Combination for X-Axis , X軸用対数ディストーション軸の組み合わせ Logarithmic Distortion Axis Combination for Y-Axis , Y軸用対数ディストーション軸の組み合わせ Logarithmic Distortion X-Axis Direction , 対数ディストーション X 軸方向 Logarithmic Distortion Y-Axis Direction , 対数歪み Y 軸方向 Lomo , ロモ Lomography Redscale 100 , ロモグラフィー レッドスケール 100 Lomography X-Pro Slide 200 , ロモグラフィーX-Proスライド200 Lookup , ルックアップ Lookup Factor , ルックアップファクター Lookup Size , ルックアップサイズ Loop Method , ループ方式 Low , 低 Low Bias , 低バイアス Low Contrast Blue , ローコントラストブルー Low Frequency , 低周波 Low Frequency Layer , 低周波層 Low Key , ローキー Low Key 01 , ローキー01 Low Scale , ロースケール Low Value , 低価格 Lower Layer Is the Bottom Layer for All Blends , 下の層はすべてのブレンドの最下層です Lower Mask Threshold (%) , 下限マスクしきい値(%) Lower Side Orientation , 下側の向き Lowercase Letters , 小文字 Lowlights Crossover Point , ローライトクロスオーバーポイント Lowres CLUT , ローレスCLUT Lucky 64 , ラッキー64 Luma , ルーマ Luma Noise , ルーマノイズ Luminance , ルミナンス Luminance Factor , 輝度係数 Luminance Level , 輝度レベル Luminance Only , ルミナンスのみ Luminance Only (Lab) , 輝度のみ(ラボ Luminance Only (YCbCr) , 輝度のみ(YCbCr Luminance Shift , ルミナンスシフト Luminance Smoothness , 輝度の滑らかさ Luminosity from Color , 色から見た明度 Luminosity Type , 光輝タイプ Lush Green Summer , 緑豊かな夏 LUTs Pack , LUTsパック Lylejk's Painting , ライルイクの絵画 Magenta , マゼンタ Magenta Coffee , マゼンタコーヒー Magenta Day , マゼンタの日 Magenta Day 01 , マゼンタの日01 Magenta Dream , マゼンタの夢 Magenta Factor , マゼンタファクター Magenta Shift , マゼンタシフト Magenta Smoothness , マゼンタの滑らかさ Magenta Yellow , マゼンタ イエロー Magenta-Yellow , マゼンタ-イエロー Magic Details , 魔法の詳細 Magnitude / Phase , マグニチュード/フェーズ Mail , メール Make Hue Depends on Region Size , 色相はリージョンサイズに依存する Make Seamless [Diffusion] , シームレスにする【拡散 Make Seamless [Patch-Based] , シームレスな[パッチベース]を作る Make Squiggly , スクイッグリーを作る Make Up , メイクアップ Mandelbrot , マンデルブロー Mandelbrot - Julia Sets , マンデルブロ-ジュリアセット Mandelbrot Explorer , マンデルブロエクスプローラー Mandrill , マンドリル Manhattan , マンハッタン Manual , マニュアル Manual Controls , マニュアルコントロール Map , 地図 Map Tones , マップトーン Mapping , マッピング Marble , 大理石 Margin (%) , マージン(%) Mascot Image , マスコットイメージ Masculine , 男性 Mask , マスク Mask + Background , マスク + 背景 Mask as Bottom Layer , ボトムレイヤーとしてのマスク Mask By , マスク Mask Color , マスクの色 Mask Contrast , マスク コントラスト Mask Creator , マスククリエーター Mask Dilation , マスクダイレーション Mask Size , マスクサイズ Mask Smoothness (%) , マスク平滑度(%) Mask Type , マスクの種類 Masked Image , マスク画像 Masking , マスキング MasterOpacity , マスター不透明度 Match Colors With , と色を一致させる Matching Precision (Smaller Is Faster) , マッチング精度(小さい方が速い Math Symbols , 数学記号 Matrix , マトリックス Max , 最大 Max Angle , 最大角度 Max Angle Deviation (deg) , 最大角度偏差(deg) Max Area , 最大面積 Max Curve , 最大曲線 Max Cut (%) , 最大カット数(%) Max Iterations , 最大反復回数 Max Length (%) , 最大長さ (%) Max Offset (%) , 最大オフセット(%) Max Radius , 最大半径 Max Threshold , 最大しきい値 Max-T , マックスティー Maximal Area , 最大面積 Maximal Color Saturation , 最大色の彩度 Maximal Highlights , 最大のハイライト Maximal Radius , 最大半径 Maximal Seams per Iteration (%) , イテレーションあたりの最大シーム数(%) Maximal Size , 最大サイズ Maximal Value , 最大値 Maximum , 最大 Maximum Dimension , 最大寸法 Maximum Image Size , 最大画像サイズ Maximum Number of Image Colors , 最大画像色数 Maximum Number of Output Layers , 最大出力レイヤ数 Maximum Red:Blue Ratio in the Fringe , フリンジ内の最大赤:青の比率 Maximum Saturation , 最大飽和度 Maximum Size Factor , 最大サイズファクター Maximum Value , 最大値 Maze , 迷路 Maze Type , 迷路タイプ McKinnon 75 , マッキノン 75 Mean Color , 平均色 Mean Curvature , 平均曲率 Median , 中央値 Median (beware: Memory-Consuming!) , 中央値(ご用心:記憶力の低下! Median Radius , 中央値半径 Medium , 中型 Medium 3 , 中型 3 Medium Details Smoothness , ミディアム 詳細 滑らかさ Medium Details Threshold , 媒体詳細スレッショルド Medium Frequency Layer , 中頻度層 Medium Scale (Original) , 中尺(オリジナル Medium Scale (Smoothed) , 中型スケール(平滑化 Memories , 思い出 Merge Brightness / Colors , 明るさ/色をマージ Merge Layers? , レイヤーをマージ? Merging Mode , マージングモード Merging Option , マージオプション Merging Steps , マージングステップ Mess with Bits , ビットを混乱させる Metal , 金属 Metallic Look , メタリックルック Method , 方法 Metric , メートル Metropolis , メトロポリス Micro/macro Details Adjusted , マイクロ/マクロ 詳細調整済み Mid , ミッド Mid Grey , ミッドグレー Mid Noise , ミッドノイズ Mid Offset , 中間オフセット Mid Tone Contrast , ミッドトーンのコントラスト Mid-Dark Grey , ミッドダークグレー Mid-Light Grey , ミッドライトグレー Mid-Tones , ミッドトーン Middle Grey , ミドルグレー Middle Scale , ミドルスケール Midpoint , 中間点 Midtones Brightness , 中間調の明るさ Midtones Color Intensity , ミッドトーンの色の強さ Midtones Hue , ミッドトーンの色相 Mighty Details , マイティの詳細 Milo 5 , ミロ 5 Min , ミン Min Angle Deviation (deg) , 最小角度偏差(deg) Min Area % , 最小面積 Min Cut (%) , 最小カット数(%) Min Length (%) , 最小長さ (%) Min Offset (%) , 最小オフセット(%) Min Radius , 最小半径 Min Threshold , 最小しきい値 Min-T , ミント Mineral Mosaic , ミネラルモザイク Minesweeper , マインスイーパ Minimal Area , 最小面積 Minimal Area (%) , 最小面積(%) Minimal Color Intensity , 最小限の色の強度 Minimal Highlights , 最小限のハイライト Minimal Path , 最小パス Minimal Radius , 最小半径 Minimal Region Area , 最小領域面積 Minimal Scale (%) , 最小規模(%) Minimal Shape Area , 最小形状面積 Minimal Size , 最小サイズ Minimal Size (%) , 最小サイズ(%) Minimal Stroke Length , 最小ストローク長 Minimal Value , 最小値 Minimalist Caffeination , ミニマリストカフェイン Minimum , 最小 Minimum Brightness , 最低の明るさ Minimum Red:Blue Ratio in the Fringe , フリンジ内の最小赤:青の比率 Ministeck , ミニステック Mirror , ミラー Mirror Effect , ミラー効果 Mirror X , ミラーX Mirror Y , ミラーY Mirror-X , ミラーエックス Mirror-XY , ミラーXY Mirror-Y , ミラーY Mix , 混合物 Mixed Mode , 混合モード MIxer , ミクサー Mixer [CMYK] , ミキサー [CMYK] Mixer [HSV] , ミキサー [HSV] Mixer [Lab] , ミキサー[研究室] Mixer [PCA] , ミキサー[PCA] Mixer [RGB] , ミキサー [RGB] Mixer [YCbCr] , ミキサー[YCbCr] Mixer Mode , ミキサーモード Mixer Style , ミキサースタイル Mod , モッド Mode , モード Modern Film , 現代映画 Modulo , モデューロ Modulo Value , モデューロ値 Moiré Animation , Moiré アニメーション Moire Removal , モアレの除去 Moire Removal Method , モアレの除去方法 Mona Lisa , モナリザ Mondrian: Composition in Red-Yellow-Blue , モンドリアン赤・黄・青の構図 Mondrian: Evening; Red Tree , モンドリアン:イブニング、レッドツリー Mondrian: Gray Tree , モンドリアン:グレーの木 Monet: San Giorgio Maggiore at Dusk , モネ:夕暮れのサン・ジョルジョ・マッジョーレ Monet: Water-Lily Pond , モネ:睡蓮の池 Monet: Wheatstacks - End of Summer , モネ:麦わらの丘-夏の終わり Monkey , モンキー Mono , モノラル Mono Tinted , 染められたモノラル Mono+G , モノ+G Mono+R , モノ+R Mono+Ye , モノ+イ Mono-Directional , 単方向性 Monochrome , モノクローム Monochrome 1 , モノクロ1 Monochrome 2 , モノクロ2 Montage , モンタージュ Montage Type , モンタージュタイプ Moody , ムーディー Moody-1 , ムーディ-1 Moody-10 , ムーディ-10 Moody-2 , ムーディ-2 Moody-3 , ムーディ-3 Moody-4 , ムーディ-4 Moody-5 , ムーディ-5 Moody-6 , ムーディ-6 Moody-7 , ムーディ-7 Moody-8 , ムーディ-8 Moody-9 , ムーディ-9 Moon2panorama , 月2パノラマ Moonlight , ムーンライト Moonlight 01 , ムーンライト01 Moonrise , 月の出 Morning 6 , 朝6時 Morph [Interactive] , モーフ[インタラクティブ] Morph Layers , モーフレイヤー Morphological - Fastest Sharpest Output , 形態素 - 最速シャープな出力 Morphological Closing , 形態素閉鎖 Morphological Filter , 形態素フィルタ Morphology Painting , モルフォロジー絵画 Morphology Strength , 形態学的な強さ MorphoStrenght , モルフォストレングス Morroco 16 , モロッコ16 Mosaic , モザイク Most , ほとんどの Mostly Blue , ほとんどブルー Motion Analyzer , モーションアナライザー Motion-Compensated , モーション補償 Moviz (48) , モビズ (48) Moviz 1 , ムービズ1 Moviz 10 , ムービズ10 Moviz 11 , ムービズ11 Moviz 13 , ムービズ13 Moviz 14 , ムービズ14 Moviz 16 , ムービズ16 Moviz 17 , ムービズ17 Moviz 18 , ムービズ18 Moviz 19 , ムービズ19 Moviz 2 , ムービズ2 Moviz 20 , ムービズ20 Moviz 21 , ムービズ21 Moviz 22 , ムービズ22 Moviz 23 , ムービズ23 Moviz 24 , ムービズ24 Moviz 25 , ムービズ25 Moviz 26 , ムービズ26 Moviz 27 , ムービズ27 Moviz 28 , ムービズ28 Moviz 29 , ムービズ29 Moviz 3 , ムービズ3 Moviz 30 , ムービズ30 Moviz 31 , ムービズ31 Moviz 32 , ムービズ32 Moviz 33 , ムービズ33 Moviz 34 , ムービズ34 Moviz 35 , ムービズ35 Moviz 36 , ムービズ36 Moviz 37 , ムービズ37 Moviz 39 , ムービズ39 Moviz 40 , ムービズ40 Moviz 41 , ムービズ41 Moviz 42 , ムービズ42 Moviz 43 , ムービズ43 Moviz 44 , ムービズ44 Moviz 45 , ムービズ45 Moviz 46 , ムービズ46 Moviz 47 , ムービズ47 Moviz 48 , ムービズ48 Moviz 8 , ムービズ8 Moviz 9 , ムービズ9 Much , 沢山 Much Blue , ムッシュブルー Much Green , 緑が多い Much Red , ムッチリレッド Mul , ミュール Multi-Layer Etch , 多層エッチング Multiple Colored Shapes Over Transp. BG , Transp.BG Multiple Layers , 複数のレイヤー Multiplier , 乗算器 Multiply , 乗算 Multiscale Operator , マルチスケールオペレーター Munch: The Scream , ムンクスクリーム Mute Shift , ミュートシフト Muted 01 , ミューテッド 01 Muted Fade , ミュートフェード Mystic Purple Sunset , ミスティックパープルサンセット Nah , 否 Naif , ナイーフ Name , 名前 Natural (vivid) , ナチュラル(鮮やか Nature & Wildlife-1 , 自然と野生動物-1 Nature & Wildlife-10 , 自然と野生動物10 Nature & Wildlife-2 , 自然と野生動物-2 Nature & Wildlife-3 , 自然と野生動物-3 Nature & Wildlife-4 , 自然と野生動物4 Nature & Wildlife-5 , 自然と野生動物-5 Nature & Wildlife-6 , 自然と野生動物-6 Nature & Wildlife-7 , 自然と野生動物-7 Nature & Wildlife-8 , 自然と野生動物8 Nature & Wildlife-9 , 自然と野生動物9 Nb Circles Surrounding , 周囲を囲むNbの円 Near Black , ブラック付近 Nearest , 最寄 Nearest Neighbor , 最寄駅 Neat Merge , ニートマージ Nebulous , ネビュラス Negate , ネゲート Negation , 否定 Negative , ネガティブ Negative [Color] (13) , ネガティブ [カラー] (13) Negative [New] (39) , ネガティブ[新規] (39) Negative [Old] (44) , ネガティブ[旧] (44) Negative Color Abstraction , ネガティブカラーの抽象化 Negative Colors , 負の色 Negative Effect , マイナスの効果 Neighborhood Size (%) , 近隣地域の規模(%) Neighborhood Smoothness , 近隣の滑らかさ Nemesis , ネメシス Neon 770 , ネオン770 Neon Lightning , ネオンライトニング Neumann , ノイマン Neutral Color , ニュートラルカラー Neutral Teal Orange , ニュートラル ティール オレンジ Neutral Warm Fade , ニュートラルウォームフェード New Curves [Interactive] , 新しい曲線[インタラクティブ] Newspaper , 新聞 Newton , ニュートン Newton Fractal , ニュートンフラクタル Night 01 , 夜01 Night Blade 4 , ナイトブレード4 Night From Day , 昼から夜へ Night King 141 , 夜の王141 Night Spy , ナイトスパイ Nine Layers , ナインレイヤー No Masking , ノーマスキング No Recovery , リカバリーなし No Rescaling , 再スケーリングなし No Transparency , 透明性がない No-Skip , ノンスキップ Noise , 騒音 Noise [Additive] , ノイズ [添加剤] Noise [Perlin] , ノイズ【パーリン Noise [Spread] , ノイズ[拡散] Noise A , 騒音A Noise B , ノイズB Noise C , ノイズC Noise D , ノイズD Noise Level , 騒音レベル Noise Scale , ノイズスケール Noise Type , ノイズの種類 Non / No , なし/なし Non-Linearity , 非直線性 Non-Rigid , 非剛体 None , なし None (Allows Multi-Layers) , なし(マルチレイヤー対応 None- Skip , スキップ Norm Type , ノームタイプ Normal , 通常 Normal Map , 通常の地図 Normal Output , 通常出力 Normalization , 正規化 Normalize , ノーマライズ Normalize Brightness , 明るさを正規化 Normalize Colors , 色の正規化 Normalize Illumination , 照明を正規化する Normalize Input , 入力の正規化 Normalize Luma , ルーマの正規化 Normalize Scales , ノーマライズスケール Nostalgia Honey , ノスタルジアハニー Nostalgic , ノスタルジック Nothing , なんでもない Number , 数 Number of Added Frames , 追加フレーム数 Number of Angles , 角度の数 Number of Clusters , クラスター数 Number of Colors , 色数 Number of Frames , フレーム数 Number of Inter-Frames , フレーム間の数 Number of Iterations per Scale , スケールごとの反復回数 Number of Key-Frames , キーフレーム数 Number of Levels , レベル数 Number of Matches (Coarsest) , マッチ数(最も粗い Number of Matches (Finest) , マッチ数(最高) Number of Orientations , オリエンテーション数 Number Of Rays , レイズ数 Number of Scales , スケール数 Number of Sizes , サイズ数 Number of Streaks , ストリーク数 Number of Teeth , 歯の数 Number of Tones , トーン数 Object Animation , オブジェクトアニメーション Object Ratio , オブジェクト比率 Object Tolerance , オブジェクトの公差 Octagon , 八角形 Octagonal , 八角形 Octaves , オクターブ Octogon , オクトゴン Oddness (%) , 奇数率(%) Off , オフ Offset , オフセット Offset (%) , オフセット(%) Offset Angle Rays Layer 1 , オフセット角度レイ レイヤ 1 Offset Angle Rays Layer 2 , オフセット角線レイヤ2 Ohad Peretz (7) , オハド・ペレツ (7) Ohta8 , 太田八 Old Method - Slowest , オールドメソッド - スロー Old Photograph , 古い写真 Old West , オールドウェスト Old-Movie Stripes , 旧作の縞模様 Oldschool 8bits , オールドスクール8ビット ON1 Photography (90) , ON1フォトグラフィー (90) Once Upon a Time , むかしむかし One Layer , 一層 One Layer (Horizontal) , 1層(水平) One Layer (Vertical) , 1層(縦) One Layer per Single Color , 単一色につき1層 One Layer per Single Region , 1つの領域に1つのレイヤー One Thread , 一本の糸 Only Leafs , リーフのみ Only Red , 赤のみ Only Red and Blue , 赤と青のみ Op Art , オプアート Opacity , 不透明度 Opacity (%) , 不透明度(%) Opacity as Heightmap , ハイトマップとしての不透明度 Opacity Contours , 不透明度の輪郭 Opacity Factor , 不透明度係数 Opacity Gain , 不透明度ゲイン Opacity Gamma , 不透明度ガンマ Opacity Snowflake , 不透明スノーフレーク Opacity Threshold (%) , 不透明度のしきい値 (%) Opaque Pixels , 不透明ピクセル Opaque Regions on Top Layer , トップレイヤーの不透明領域 Opaque Skin , 不透明な肌 Open Interactive Preview , オープンインタラクティブプレビュー Opening , オープニング Operation Yellow , オペレーションイエロー Operator , オペレーター Opposing , 反対 Optimized Lateral Inhibition , 最適化された側方抑制 Orange Dark 4 , オレンジダーク4 Orange Dark 7 , オレンジダーク7 Orange Dark Look , オレンジ色のダークルック Orange Tone , オレンジトーン Orange Underexposed , オレンジ色のアンダー露出 Oranges , オレンジ Order , 注文 Order By , 並び順 Orientation , オリエンテーション Orientation Coherence , オリエンテーションコヒーレンス Orientation Only , オリエンテーションのみ Orientations , オリエンテーション Original , オリジナル Original - (Opening + Closing)/2 , オリジナル~(オープニング+クロージング)/2 Original - Erosion , オリジナル - 侵食 Original - Opening , オリジナル - オープニング Orthogonal Radius , 直交半径 Orton Glow , オルトングロー Orwo NP20-GDR , オルウー NP20-GDR Others (69) , その他 (69) Ouline Color , ウーリンカラー Outer , 外側 Outer Fading , アウターフェージング Outer Length , 外側の長さ Outer Radius , 外径 Outline , 概要 Outline (%) , 概要(%) Outline Color , アウトラインカラー Outline Contrast , アウトライン コントラスト Outline Opacity , アウトライン不透明度 Outline Size , 外形寸法 Outline Smoothness , アウトラインの滑らかさ Outline Thickness , 輪郭の厚さ Outlined , アウトライン化 Output , 出力 Output As , として出力 Output as Files , ファイルとして出力 Output as Frames , フレームとして出力 Output as Multiple Layers , 複数のレイヤーとして出力 Output as Separate Layers , 別レイヤーとして出力 Output Ascii File , 出力アスキーファイル Output Chroma NR , 出力クロマNR Output CLUT , 出力CLUT Output CLUT Resolution , 出力 CLUT 分解能 Output Coordinates File , 出力座標ファイル Output Corresponding CLUT , 出力対応 CLUT Output Directory , 出力ディレクトリ Output Each Piece on a Different Layer , 各ピースを異なるレイヤーに出力 Output Filename , 出力ファイル名 Output Files , 出力ファイル Output Folder , 出力フォルダ Output Format , 出力形式 Output Frames , 出力フレーム Output Height , 出力高さ Output HTML File , 出力HTMLファイル Output Layers , 出力レイヤ Output Mode , 出力モード Output Multiple Layers , 複数のレイヤーを出力 Output Preset as a HaldCLUT Layer , HaldCLUTレイヤとしての出力プリセット Output Region Delimiters , 出力領域のデリミタ Output Saturation , 出力飽和度 Output Sharpening , 出力シャープネス Output Stroke Layer On , 出力ストロークレイヤ Output to Folder , フォルダへの出力 Output Type , 出力タイプ Output Width , 出力幅 Outside , 外側 Outside Color , 外側の色 Outside-In , アウトサイドイン Outward , 外側 Overall Blur , 全体的なぼかし Overall Contrast , 全体的なコントラスト Overall Lightness , 全体的な軽さ Overlap (%) , オーバーラップ(%) Overlay , オーバーレイ Oversample , オーバーサンプル Overshoot , オーバーシュート P''(z) , P'(z) Pack , パック Pack Sprites , パックスプライト Pacman , パックマン Padding (px) , パディング (px) Paint , 塗料 Paint Daub , ペイントダブ Paint Effect , ペイント効果 Paint Splat , ペイントスプラット Painter's Edge Protection Flow , ペインターズエッジ保護フロー Painter's Smoothness , ペインターズスムース Painter's Touch Sharpness , ペインターズタッチのシャープネス Painting , 絵画 Painting Opacity , 塗装の不透明度 Paintstroke , 筆跡 Paladin , パラディン Paladin 1875 , パラディン1875 Paper Texture , 紙の質感 Parallel Processing , 並列処理 Parrots , オウム Pasadena 21 , パサディナ 21 Passing By , 通りすがりの方 Pastell Art , パステルアート Patch , パッチ Patch Measure , パッチメジャー Patch Size , パッチサイズ Patch Size for Analysis , 解析用パッチサイズ Patch Size for Synthesis , 合成用パッチサイズ Patch Size for Synthesis (Final) , 合成用パッチサイズ(最終 Patch Smoothness , パッチの滑らかさ Patch Variance , パッチバリエーション Pattern , パターン Pattern Angle , パターン角度 Pattern Height , パターンの高さ Pattern Type , パターンタイプ Pattern Variation 1 , パターンバリエーション1 Pattern Variation 2 , パターンバリエーション2 Pattern Variation 3 , パターンバリエーション3 Pattern Weight , パターン重量 Pattern Width , パターン幅 Paw , 肉球 PCA Transfer , PCA転送 Pea Soup , エンドウ豆のスープ Pen Drawing , ペンデッサン Penalize Patch Repetitions , パッチの繰り返しにペナルティを課す Pencil , 鉛筆 Pencil Amplitude , 鉛筆の振幅 Pencil Portrait , ペンシルポートレート Pencil Size , 鉛筆サイズ Pencil Smoother Edge Protection , ペンシルスムーサーのエッジ保護 Pencil Smoother Sharpness , 鉛筆スムーサー シャープネス Pencil Smoother Smoothness , ペンシルスムーサーのなめらかさ Pencil Type , ペンシルタイプ Pencils , 鉛筆 Pentagon , ペンタゴン Peppers , 唐辛子 Percent of Image Half-Hypotenuse (%) , 画像の半分ハイポテンウスの割合(%) Periodic , 周期的 Periodic Dots , 周期的なドット Periodicity , 周期性 Perserve Luminance , パーサーブ ルミナンス Perspective , パースペクティブ Perturbation , 摂動 Petals , 花びら Phase , フェーズ Phone , 電話番号 Phong , フォン PhotoComix Preset , フォトミックスプリセット Photoillustration , フォトイラストレーション Picabia: Udnie , ピカビアウーディー Picasso: Les Demoiselles D'Avignon , ピカソ:アヴィニョンのデモワイズelles D'Avignon Picasso: Seated Woman , ピカソ:座っている女性 Picasso: The Reservoir - Horta De Ebro , ピカソ:貯水池 - Horta De Ebro PictureFX (19) , ピクチャーFX (19) Piece Complexity , ピースの複雑さ Piece Size (px) , ピースサイズ(px) Pin Light , ピンライト Pink Fade , ピンクフェード Pinlight , ピンライト Pitaya 15 , ピタヤ15 Pixel Denoise , ピクセルデノワーズ Pixel Sort , ピクセルソート Pixel Values , ピクセル値 Placement , 設置場所 Plaid , プレイド Plane , 平面 Plasma , プラズマ Plasma Effect , プラズマ効果 Plot Type , プロットタイプ Point #0 , ポイント#0 Point #1 , ポイントその1 Point #2 , ポイントその2 Point #3 , ポイント#3 Point 1 , ポイント1 Point 2 , ポイント2 Points , ポイント Poisson , ポアソン Polar Transform , ポーラー変換 Polaroid , ポラロイド Polaroid 664 , ポラロイド 664 Polaroid 665 , ポラロイド 665 Polaroid 665 + , ポラロイド665+の Polaroid 665 ++ , ポラロイド665++。 Polaroid 665 - , ポラロイド665 Polaroid 665 -- , ポラロイド665 Polaroid 665 Negative , ポラロイド 665 ネガ Polaroid 665 Negative + , ポラロイド665ネガティブ Polaroid 665 Negative - , ポラロイド 665 ネガ Polaroid 665 Negative HC , ポラロイド665ネガHC Polaroid 667 , ポラロイド 667 Polaroid 669 , ポラロイド669 Polaroid 669 + , ポラロイド669+ Polaroid 669 ++ , ポラロイド669+++。 Polaroid 669 +++ , ポラロイド669 +++ Polaroid 669 - , ポラロイド669 Polaroid 669 -- , ポラロイド669 Polaroid 669 Cold , ポラロイド669 コールド Polaroid 669 Cold + , ポラロイド669 コールド+。 Polaroid 669 Cold - , ポラロイド669コールド Polaroid 669 Cold -- , ポラロイド669コールド Polaroid 672 , ポラロイド672 Polaroid 690 , ポラロイド690 Polaroid 690 + , ポラロイド690+ Polaroid 690 ++ , ポラロイド690++。 Polaroid 690 - , ポラロイド690 Polaroid 690 -- , ポラロイド690 Polaroid 690 Cold , ポラロイド690 コールド Polaroid 690 Cold + , ポラロイド690 コールド+の Polaroid 690 Cold ++ , ポラロイド690コールド+++。 Polaroid 690 Cold - , ポラロイド690コールド Polaroid 690 Cold -- , ポラロイド690コールド Polaroid 690 Warm , ポラロイド690ウォーム Polaroid 690 Warm + , ポラロイド690ウォーム+ Polaroid 690 Warm ++ , ポラロイド690ウォーム++。 Polaroid 690 Warm - , ポラロイド690ウォーム Polaroid 690 Warm -- , ポラロイド690ウォーム Polaroid Polachrome , ポラロイド ポラクローム Polaroid PX-100UV+ Cold , ポラロイド PX-100UV+ コールド Polaroid PX-100UV+ Cold + , ポラロイドPX-100UV+コールド+。 Polaroid PX-100UV+ Cold ++ , ポラロイドPX-100UV+コールド++。 Polaroid PX-100UV+ Cold +++ , ポラロイド PX-100UV+ コールド +++ Polaroid PX-100UV+ Cold - , ポラロイド PX-100UV+ コールド Polaroid PX-100UV+ Cold -- , ポラロイド PX-100UV+ コールド Polaroid PX-100UV+ Warm , ポラロイド PX-100UV+ ウォーム Polaroid PX-100UV+ Warm + , ポラロイドPX-100UV+ ウォーム+の Polaroid PX-100UV+ Warm ++ , ポラロイドPX-100UV+ウォーム+++。 Polaroid PX-100UV+ Warm +++ , ポラロイドPX-100UV+ウォーム++++++。 Polaroid PX-100UV+ Warm - , ポラロイド PX-100UV+ ウォーム Polaroid PX-100UV+ Warm -- , ポラロイドPX-100UV+ウォーム Polaroid PX-680 , ポラロイドPX-680 Polaroid PX-680 + , ポラロイドPX-680+(PX-680)+(ポラロイドPX-680 Polaroid PX-680 ++ , ポラロイドPX-680+++。 Polaroid PX-680 - , ポラロイドPX-680 Polaroid PX-680 -- , ポラロイドPX-680 Polaroid PX-680 Cold , ポラロイド PX-680 コールド Polaroid PX-680 Cold + , ポラロイドPX-680 コールド+。 Polaroid PX-680 Cold ++ , ポラロイドPX-680コールド++。 Polaroid PX-680 Cold ++a , ポラロイド PX-680 コールド ++a Polaroid PX-680 Cold - , ポラロイドPX-680コールド Polaroid PX-680 Cold -- , ポラロイドPX-680コールド Polaroid PX-680 Warm , ポラロイド PX-680 ウォーム Polaroid PX-680 Warm + , ポラロイドPX-680 ウォーム+。 Polaroid PX-680 Warm ++ , ポラロイドPX-680ウォーム++。 Polaroid PX-680 Warm - , ポラロイド PX-680 ウォーム Polaroid PX-680 Warm -- , ポラロイドPX-680ウォーム Polaroid PX-70 , ポラロイドPX-70 Polaroid PX-70 + , ポラロイドPX-70+α Polaroid PX-70 ++ , ポラロイドPX-70+++。 Polaroid PX-70 +++ , ポラロイドPX-70 +++++。 Polaroid PX-70 - , ポラロイドPX-70 Polaroid PX-70 -- , ポラロイドPX-70 Polaroid PX-70 Cold , ポラロイド PX-70 コールド Polaroid PX-70 Cold + , ポラロイドPX-70 コールド+。 Polaroid PX-70 Cold ++ , ポラロイドPX-70コールド++。 Polaroid PX-70 Cold - , ポラロイド PX-70 コールド Polaroid PX-70 Cold -- , ポラロイドPX-70コールド Polaroid PX-70 Warm , ポラロイド PX-70 ウォーム Polaroid PX-70 Warm + , ポラロイドPX-70 ウォーム+。 Polaroid PX-70 Warm ++ , ポラロイドPX-70ウォーム++。 Polaroid PX-70 Warm - , ポラロイド PX-70 ウォーム Polaroid PX-70 Warm -- , ポラロイドPX-70ウォーム Polaroid Time Zero (Expired) , ポラロイド タイムゼロ(期限切れ Polaroid Time Zero (Expired) + , ポラロイドタイムゼロ(期限切れ)+α Polaroid Time Zero (Expired) ++ , ポラロイドタイムゼロ(期限切れ)++++。 Polaroid Time Zero (Expired) - , ポラロイド タイムゼロ(期限切れ Polaroid Time Zero (Expired) -- , ポラロイド タイムゼロ(期限切れ) Polaroid Time Zero (Expired) --- , ポラロイドタイムゼロ(期限切れ)---。 Polaroid Time Zero (Expired) Cold , ポラロイド タイムゼロ(期限切れ)コールド Polaroid Time Zero (Expired) Cold - , ポラロイド タイムゼロ(賞味期限切れ)コールド Polaroid Time Zero (Expired) Cold -- , ポラロイド タイムゼロ(期限切れ) 寒さ -- ポラロイドタイムゼロ Polaroid Time Zero (Expired) Cold --- , ポラロイド タイムゼロ(賞味期限切れ)コールド---。 Pole Lat , ポールラット Pole Long , ポールロング Pole Rotation , ポールローテーション Polka Dots , ポルカドット Pollock: Convergence , ポロックコンバージェンス Pollock: Summertime Number 9A , ポロックサマータイムナンバー9A Polygonize [Delaunay] , ポリゴナイズ【デローネ Polygonize [Energy] , ポリゴン化[エネルギー] Pop Shadows , ポップシャドウズ Portrait , 肖像画 Portrait Retouching , ポートレートレタッチ Portrait-1 , 肖像画-1 Portrait-2 , 肖像画-2 Portrait-3 , 肖像画-3 Portrait-4 , 肖像画-4 Portrait-5 , 肖像画-5 Portrait-6 , 肖像画-6 Portrait-7 , 肖像画-7 Portrait-8 , 肖像画-8 Portrait-9 , 肖像画-9 Portrait0 , 肖像画0 Portrait1 , 肖像画1 Portrait10 , 肖像画10 Portrait2 , 肖像画2 Portrait3 , 肖像画3 Portrait4 , 肖像画4 Portrait5 , 肖像画5 Portrait6 , 肖像画6 Portrait7 , 肖像画7 Portrait8 , 肖像画8 Portrait9 , 肖像画9 Position , ポジション Position X (%) , ポジションX (%) Position X Origin (%) , 位置 X 原点 (%) Position Y (%) , ポジションY (%) Position Y Origin (%) , 位置 Y 原点 (%) Positive , ポジティブ Post-Gamma , ポストガンマ Post-Normalize , ポストノーマライズ Post-Process , ポストプロセス Poster Edges , ポスターエッジ Posterization Antialiasing , ポスタリゼーション・アンチエイリアシング Posterization Level , ポスタライゼーションレベル Posterize , ポスタライズ Posterized Dithering , ポスタライズされたディザリング Pow , パウ Power , 力 Pre-Defined , 事前定義 Pre-Defined Colormap , 事前に定義されたカラーマップ Pre-Gamma , プレガンマ Pre-Normalize , 事前に正規化 Pre-Normalize Image , 画像を正規化する Pre-Process , 前処理 Precision , 精度 Precision (%) , 精度(%) Preliminary Surface Shift , 予備的なサーフェスシフト Preliminary X-Axis Scaling , 予備的なX軸スケーリング Preliminary Y-Axis Scaling , 予備的なY軸スケーリング Preprocessor Power , プリプロセッサパワー Preprocessor Radius , プリプロセッサの半径 Preserve Canvas for Post Bump Mapping , ポストバンプマッピングのためのキャンバスの保存 Preserve Edges , エッジの保存 Preserve Image Dimension , 画像の寸法を保存 Preserve Initial Brightness , 初期の明るさを維持する Preserve Luminance , 輝度を維持する Preset , プリセット Preview , プレビュー Preview All Outputs , すべての出力をプレビュー Preview Bands , プレビューバンド Preview Brush , プレビューブラシ Preview Data , プレビューデータ Preview Detected Shapes , 検出された図形のプレビュー Preview Frame Selection , プレビューフレームの選択 Preview Gradient , プレビューグラデーション Preview Grain Alone , グレインアローンのプレビュー Preview Grid , プレビューグリッド Preview Guides , プレビューガイド Preview Mapping , プレビューマッピング Preview Mask , プレビューマスク Preview Only Shadow , プレビューのみシャドウ Preview Opacity (%) , プレビュー 不透明度 (%) Preview Original , オリジナルのプレビュー Preview Precision , プレビュー精度 Preview Progress (%) , プレビューの進捗状況 (%) Preview Progression While Running , ランニング中に進行状況をプレビュー Preview Ref Point , 内覧会ポイント Preview Reference Circle , プレビュー参照サークル Preview Selection , プレビューセレクション Preview Shape , プレビュー形状 Preview Shows , プレビューショー Preview Split , プレビュー分割 Preview Subsampling , サブサンプリングのプレビュー Preview Time , プレビュータイム Preview Tones Map , トーンマップのプレビュー Preview Type , プレビュータイプ Preview Without Alpha , アルファなしのプレビュー Prewitt-X , プリウィットエックス Prewitt-Y , プリウィットワイ Primary Angle , 主角度 Primary Color , 原色 Primary Factor , 第一の要因 Primary Gamma , 一次ガンマ Primary Radius , 一次半径 Primary Shift , プライマリーシフト Primary Twist , プライマリーツイスト Print Adjustment Marks , 印刷調整マーク Print Films (12) , プリントフィルム (12) Print Frame Numbers , フレーム番号を印刷する Print Size Unit , 印刷サイズ単位 Print Size Width , 印刷サイズ幅 Privacy Notice , 個人情報の取り扱いについて Pro Neg Hi , プロネグハイ Pro Neg Std , プロ・ネグ標準 Probability Map , 確率マップ Procedural , 手続き Process As , プロセス Process by Blocs of Size , サイズブロックによる処理 Process Channels Individually , チャンネルを個別に処理 Process Top Layer Only , プロセストップ層のみ Process Transparency , プロセスの透明性 Processing Mode , 処理モード Progressen , プログレッシェン Propagation , 伝播 Proportion , 比例 Protanomaly , プロトノマリー Protanopia , プロタノピア Protect Highlights 01 , ハイライト01を保護する Provia , プロビア Prussian Blue , プルシアンブルー Pseudo-Gray Dithering , 疑似グレーディザリング Purple , 紫色 Purple11 (12) , 紫11 (12) Puzzle , パズル Pyramid , ピラミッド Pyramid Processing , ピラミッド処理 Pythagoras Tree , ピタゴラスの木 Quadrangle , 四角形 Quadratic , 二次 Quadtree Variations , クワッドツリーのバリエーション Quality , 品質 Quality (%) , 品質(%) Quantization , 量子化 Quantize Colors , 色の量子化 Quasi-Gaussian , 準ガウス Quick , クイック Quick Copyright , クイック著作権 Quick Enlarge , クイック拡大 R/B Smoothness (Principal) , R/B 滑らかさ(プリンシパル R/B Smoothness (Secondary) , R/B 滑らかさ(二次) Radial , 放射状 Radius , 半径 Radius (%) , 半径(%) Radius / Angle , 半径/角度 Radius [Manual] , 半径 [マニュアル] Radius Cut , ラジアスカット Radius Middle Circle , 半径中円 Radius Outer Circle A (>0 W%) (<0 H%) , 半径外円A (>0 W%) (<0 H%) Rain & Snow , 雨と雪 Rainbow , レインボー Raindrops , 雨粒 Random , ランダム Random [non-Transparent] , ランダム[非透過] Random Angle , ランダム角度 Random Color Ellipses , ランダムカラー楕円 Random Colors , ランダムカラー Random Seed , ランダムシード Random Shade Stripes , ランダムシェードストライプ Randomize , ランダム化 Randomized , ランダム化 Randomness , ランダム性 Range , 範囲 Ratio , 比率 Raw , 生 Rays , レイズ Rays Colors AB , レイズカラーズAB Rays Colors ABC , レイズカラーズABC Rays Colors ABCD , レイズカラーズABCD Rays Colors ABCDE , レイズカラーズABCDE Rays Colors ABCDEF , レイズカラーズ ABCDEF Rays Colors ABCDEFG , レイズカラーズ ABCDEFG Rcx , RCX Rebuild From Similar Blocs , 類似ブロックからの再構築 Recompose , 再構成 Reconstruct From Previous Frames , 以前のフレームからの再構築 Recover , リカバリー Recover Highlights , ハイライトを回復 Recover Shadows , 影を回復する Recovery , リカバリー Rectangle , 長方形 Recursion Depth , 再帰の深さ Recursions , 再帰 Recursive Median , 再帰的中央値 Red , 赤 Red - Green - Blue , 赤-緑-青 Red - Green - Blue - Alpha , 赤・緑・青・アルファ Red Afternoon 01 , レッドアフタヌーン01 Red Blue Yellow , 赤 青 黄 Red Chroma Factor , レッドクロマファクター Red Chroma Shift , レッドクロマシフト Red Chroma Smoothness , レッドクロマスムースネス Red Chrominance , 赤色度 Red Day 01 , レッドデー01 Red Dream 01 , 赤い夢01 Red Factor , レッドファクター Red Level , レッドレベル Red Rotations , レッドローテーション Red Shift , レッドシフト Red Smoothness , 赤色の滑らかさ Red Wavelength , 赤色波長 Red-Eye Attenuation , 赤目の減衰 Red-Green , 赤緑 Reds , レッズ Reds Oranges Yellows , 赤 オレンジ イエロー Reduce Halos , ハローズを減らす Reduce Noise , ノイズの低減 Reduce RAM , RAMの削減 Reduce Redness , 赤みを抑える Reeve 38 , リーブ38 Reference , 参考 Reference Angle (deg.) , 基準角度(deg. Reference Color , 参照色 Reference Colors , 参照色 Reflect , 反映させる Reflection , リフレクション Refraction , 屈折 Regular Grid , 通常のグリッド Regularity , 規則性 Regularity (%) , 規則性(%) Regularization , 正規化 Regularization (%) , 正則化 (%) Regularization Factor , 正則化係数 Regularization Iterations , 正則化の反復 Reject , 拒否 Rejected Colors , 不合格の色 Rejected Mask , 拒否されたマスク Relative Block Count , 相対ブロック数 Relative Size , 相対的なサイズ Relative Warping , 相対的なゆがみ Release Notes , リリースノート Relief , 救済 Relief Amplitude , リリーフ振幅 Relief Contrast , レリーフコントラスト Relief Light , リリーフライト Relief Size , レリーフサイズ Relief Smoothness , リリーフの滑らかさ Remix , リミックス Remove Artifacts From Micro/Macro Detail , マイクロ/マクロの詳細からアーティファクトを除去する Remove Hot Pixels , ホットピクセルを削除 Remove Tile , タイルの取り外し Remy 24 , レミー24 Render Multiple Frames , 複数のフレームをレンダリング Render on Dark Areas , 暗い部分にレンダリング Render on White Areas , 白い部分にレンダリング Render Routine for Wiggle Animations , くねくねアニメーションのレンダリングルーチン Rendering , レンダリング Rendering Mode , レンダリングモード Rendu , レンドゥ Repair Scanned Document , スキャンした文書の修復 Repeat , リピート Repeat [Memory Consuming!] , メモリ消費!】を繰り返す Repeats , 繰り返し Replace , 置き換え Replace (Sharpest) , 交換(シャープ Replace Layer with CLUT , レイヤをCLUTに置き換える Replace Source by Target , ソースをターゲットに置き換える Replace With White , 白に置き換える Replaced Color , 色を取り替えられた Replacement Color , 交換色 Reptile , 爬虫類 Rescaling , 再スケーリング Reset View , ビューのリセット Resize Image for Optimum Effect , 最適な効果を得るために画像のサイズを変更する Resolution , 決議 Resolution (%) , 分解能(%) Resolution (px) , 解像度(px) Rest 33 , 残り33 Result Image , 結果画像 Result Type , 結果の種類 Resynthetize Texture [FFT] , テクスチャの再合成 [FFT] Resynthetize Texture [Patch-Based] , テクスチャの再合成 [パッチベース] Retinex , レチネックス Retouch Layer , レタッチレイヤー Retouched and Sharpened Areas , レタッチされた部分とシャープになった部分 Retouched Areas Only , レタッチされた部分のみ Retouched Image , レタッチされた画像 Retouched Image Basic , レタッチ画像の基本 Retouched Image Final , レタッチされた画像の最終 Retouching Style , レタッチスタイル Retro , レトロ Retro Brown 01 , レトロブラウン01 Retro Fade , レトロフェード Retro Magenta 01 , レトロなマゼンタ01 Retro Summer 3 , レトロな夏3 Retro Yellow 01 , レトロイエロー01 Return Scaling , リターンスケーリング Reverse Bits , リバースビット Reverse Bytes , 逆バイト Reverse Effect , 逆効果 Reverse Endianness , 逆エンディアン Reverse Flip , 逆フリップ Reverse Frame Stack , リバースフレームスタック Reverse Gradient , 逆グラデーション Reverse Mod , リバースモッド Reverse Motion , リバースモーション Reverse Order , 逆順 Reverse Pow , リバースパウ Reversing , 反転 Revert Layer Order , レイヤ順序の反転 Revert Layers , レイヤーの反転 RGB , RGB RGB [All] , RGB [すべて] RGB [Blue] , RGB [青] RGB [Green] , RGB [緑] RGB [red] , RGB [赤] RGB Image + Binary Mask (2 Layers) , RGB画像 + バイナリマスク(2層 RGB Quantization , RGB量子化 RGB Tone , RGBトーン RGB8 , RGB8 RGBA , RGBA RGBA [All] , RGBA [すべて] RGBA [Alpha] , RGBA [アルファ] RGBA Foreground + Background (2 Layers) , RGBA前景+背景(2レイヤー RGBA Image (Full-Transparency / 1 Layer) , RGBA画像(全透明/1層) RGBA Image (Updatable / 1 Layer) , RGBAイメージ(更新可能/1レイヤー Rice , 米 Right , 吁 Right Diagonal Foreground , 右斜め前景 Right Diagonal Foreground , 右斜め前景 Right Eye View , 右目のビュー Right Foreground , 右前景 Right Position , 右の位置 Right Side Orientation , 右側の向き Right Slope , 右斜面 Right Stream Only , 右ストリームのみ Rigid , 硬質 Ripple , リップル Robert Cross 1 , ロバート・クロス 1 Robert Cross 2 , ロバート・クロス2 RocketStock (35) , ロケットストック (35) Roddy , ロディ Roddy (by Mahvin) , ロディ(byマーヴィン Rodilius , ロディリウス Rodilius [Animated] , ロディリアス【アニメ化 Rollei IR 400 , ロレイ IR 400 Rollei Ortho 25 , ロレイオルソ25 Rollei Retro 100 Tonal , ロレイ レトロ100トーン Rollei Retro 80s , ロレイ レトロ80年代 Rooster , ルースター Rorschach , ロールシャッハ Rose , 薔薇 Rotate , 回転 Rotate (muted) , 回転(ミュート Rotate (vibrant) , 回転させる(鮮やかに Rotate 180 Deg. , 180度回転させます。 Rotate 270 Deg. , 270度回転させます。 Rotate 90 Deg. , 90度回転させます。 Rotate Hue Bands , 色相バンドの回転 Rotate Tree , ツリーを回転させる Rotated , 回転 Rotated (crush) , 回転させる(つぶす Rotations , 回転数 Rotinv-X , ロチンブエックス Rotinv-Y , ロティンヴイ Round , 丸い Roundness , 丸みを帯びた Row by Row , 一列一列 Rubik , ルービック Runge-Kutta , ランゲクッタ RYB , RYB RYB [All] , RYB [全] RYB [Blue] , RYB【青 RYB [Red] , RYB【赤 RYB [Yellow] , RYB【黄色 RYB8 , RYB8 S-Curve Contrast , S字カーブコントラスト Salt and Pepper , 塩コショウ Same as Input , 入力と同じ Same Axis , 同じ軸 Sample Image , サンプル画像 Sampling , サンプリング Sat Bottom , 土底 Sat Range , サットレンジ Sat Top , サットトップ Satin , サテン Saturated Blue , 飽和ブルー Saturation , 飽和度 Saturation (%) , 飽和度 Saturation Channel Gamma , 飽和チャンネルガンマ Saturation Correction , 彩度補正 Saturation EQ , サチュレーションEQ Saturation Factor , 飽和度係数 Saturation Offset , 彩度オフセット Saturation Shift , サチュレーションシフト Saturation Smoothness , 彩度の滑らかさ Save CLUT as .Cube or .Png File , CLUTを.Cubeまたは.Pngファイルとして保存する Save Gradient As , グラデーションを名前を付けて保存 Saving Private Damon , デイモン一等兵を救う Scalar , スカラー Scale , スケール Scale (%) , スケール(%) Scale 1 , スケール1 Scale 2 , スケール2 Scale CMYK , スケールCMYK Scale Factor , スケールファクター Scale Output , スケール出力 Scale Plasma , スケールプラズマ Scale RGB , スケールRGB Scale Style to Fit Target Resolution , ターゲットの解像度に合わせてスタイルを拡大縮小 Scale Variations , スケールバリエーション Scaled , スケーリングされた Scales , スケール Scaling Factor , スケーリングファクター Scanlines , スキャンライン Scene Selector , シーンセレクタ Science Fiction , SF Scr , スクラッチ Screen , スクリーン Screen Border , 画面の境界線 Seamcarve , シームカーヴ Seamless Deco , シームレスデコ Seamless Turbulence , シームレスな乱流 Secant , セカント Second Color , セカンドカラー Second Offset , 第2オフセット Second Radius , 第二半径 Second Size , セカンドサイズ Secondary Color , 二次色 Secondary Factor , 第二の要因 Secondary Gamma , 二次ガンマ Secondary Radius , 二次半径 Secondary Shift , セカンダリーシフト Secondary Twist , セカンダリーツイスト Sectors , セクター Seed , 種子 Segment Max Length (px) , セグメント最大長 (px) Segmentation , セグメンテーション Segmentation Edge Threshold , セグメンテーションエッジしきい値 Segmentation Smoothness , セグメンテーションの滑らかさ Segments , セグメント Segments Strength , セグメントの強さ Select By , で選択してください Select-Replace Color , 色の選択と置換 Selected Color , 選択された色 Selected Colors , 厳選された色 Selected Frame , 選択されたフレーム Selected Mask , 選択されたマスク Selection , 選択 Selective Desaturation , 選択的脱飽和 Selective Gaussian , 選択的ガウス Self , 自己紹介 Self Glitching , 自己のグリッチ Self Image , セルフイメージ Sensitivity , 感度 Sepia , セピア Sequence X4 , シーケンスX4 Sequence X6 , シーケンスX6 Sequence X8 , シーケンスX8 Serenity , セレニティ Serial Number , シリアル番号 Seringe 4 , セーリンゲ4 Serpent , サーペント Set Aspect Only , セットアスペクトのみ Set Frame Format , フレームフォーマットの設定 Seven Layers , 七層 Seventies Magazine , セブンティーズマガジン Shade , シェード Shade Angle , シェード角度 Shade Back to First Color , シェードバックからファーストカラーへ Shade Bobs , シェードボブ Shade Strength , 陰の強さ Shadebobs , シェードボブス Shading , シェーディング Shading (%) , 濃淡 (%) Shadow , 影 Shadow Contrast , 影のコントラスト Shadow Intensity , 影の強度 Shadow King 39 , シャドウキング39 Shadow Offset X , シャドウオフセットX Shadow Offset Y , 影オフセット Y Shadow Patch , シャドーパッチ Shadow Size , 影のサイズ Shadow Smoothness , 影の滑らかさ Shadows , シャドウズ Shadows Abstraction , 影の抽象化 Shadows Brightness , 影の明るさ Shadows Color Intensity , 影の色の強度 Shadows Hue Shift , 影の色相シフト Shadows Lightness , 影の明るさ Shadows Selection , 影の選択 Shadows Threshold , 影のしきい値 Shadows Zone , シャドウズゾーン Shamoon Abbasi (25) , シャムーン・アッバース(25 Shape , 形状 Shape Area Max , 形状面積最大 Shape Area Max0 , 形状面積Max0 Shape Area Min , 形状面積 最小 Shape Area Min0 , 形状面積 Min0 Shape Average , 形状平均 Shape Average0 , 形状平均0 Shape Max , 形状マックス Shape Max0 , 形状Max0 Shape Median , 形状中央値 Shape Median0 , 形状中央値0 Shape Min , 形状 Shape Min0 , 形状 Min0 Shapeaverage , 形状平均 Shapeism , シェイプイズム Shapes , 形状 Sharp Abstract , シャープアブストラクト Sharpen , シャープ Sharpen [Deblur] , シャープ【デブラー Sharpen [Gold-Meinel] , シャープ【ゴールド・マイネル Sharpen [Gradient] , シャープ[グラデーション] Sharpen [Hessian] , シャープ【ヘッセン Sharpen [Inverse Diffusion] , シャープ【逆拡散 Sharpen [Multiscale] , シャープ[マルチスケール] Sharpen [Octave Sharpening] , シャープ[オクターブシャープニング Sharpen [Richardson-Lucy] , シャープ【リチャードソン=ルーシー Sharpen [Shock Filters] , シャープ [ショックフィルター] Sharpen [Texture] , シャープ [テクスチャ] Sharpen [Tones] , シャープ [トーン] Sharpen [Unsharp Mask] , シャープ【アンシャープマスク Sharpen [Whiten] , シャープ【白くする Sharpen Details in Preview , プレビューで詳細をシャープにする Sharpen Edges Only , エッジのみをシャープにする Sharpen Object , オブジェクトをシャープにする Sharpen Radius , 半径をシャープにする Sharpen Shades , シャープシェード Sharpened Areas Only , 研ぎ澄まされた部分のみ Sharpening , シャープ Sharpening Layer , レイヤのシャープ化 Sharpening Radius , シャープ半径 Sharpening Strength , 研ぎの強さ Sharpening Type , シャープタイプ Sharpest , 鋭い Sharpness , シャープネス Shift Linear Interpolation? , シフト線形補間? Shift Point , シフトポイント Shift X , シフトX Shift Y , シフトY Shine , 輝き Shininess , 輝き Shivers , 戦慄 Shock Waves , 衝撃波 Shopping Cart , ショッピングカート Show Both Poles , 両極を表示 Show Difference , 違いを表示する Show Frame , フレームを表示 Show Grid , グリッドを表示 Show Watershed , 流域を表示 Shrink , シュリンク Shuffle Pieces , シャッフルピース Side by Side , サイド・バイ・サイド Sierpinksi Design , シエルピンクシデザイン Sierpinski Triangle , シエルピンスキートライアングル Sigma , シグマ Sigma 1 , シグマ1 Sigma 2 , シグマ2 Silver , シルバー Similarity Space , 類似空間 Simple Local Contrast , シンプルなローカルコントラスト Simple Noise Canvas , シンプルノイズキャンバス Simulate Film , フィルムのシミュレーション Sin(z) , シン(z) Sine , 正弦 Sine+ , 正弦+ Single (Merged) , シングル(合併) Single Custom Depth Map , シングルカスタムデプスマップ Single Image Stereogram , シングルイメージステレオグラム Single Layer , 単層 Single Opaque Shapes Over Transp. BG , Transp.の上に単一の不透明な形状。BG Six Layers , 6つのレイヤー Sixteen Threads , 十六本の糸 Size , サイズ Size (%) , サイズ(%) Size for Bright Tones , ブライトトーン用サイズ Size for Dark Tones , ダークトーン用サイズ Size of Frame Numbers (%) , フレーム数の大きさ(%) Size Variance , サイズバリエーション Size-1 , サイズ-1 Size-2 , サイズ2 Size-3 , サイズ-3 Skeletik , スケルティック Skeleton , 骨格 Sketch , スケッチ Skin Estimation , 肌の見積もり Skin Mask , スキンマスク Skin Tone Colors , スキントーンカラー Skin Tone Mask , スキントーンマスク Skin Tone Protection , 肌色の保護 Skip All Other Steps , 他のすべてのステップをスキップする Skip Finest Scales , 最高級のスケールをスキップ Skip Others Steps , 他のステップをスキップする Skip This Step , このステップをスキップ Skip to Use the Mask to Boost , スキップしてブーストするためのマスクを使用して Slice Luminosity , スライス光量 Slide [Color] (26) , スライド [カラー] (26) Slow (Accurate) , 遅い (正確な). Slow Recovery , 遅い回復 Small , 小 Small (Faster) , 小さい(速い SmallHD Movie Look (7) , SmallHDムービールック (7) Smart , スマート Smart Contrast , スマートコントラスト Smart Threshold , スマートしきい値 Smokey , スモーキー Smooth , スムーズ Smooth [Anisotropic] , 滑らかな[異方性] Smooth [Antialias] , スムーズ【アンチアリアス Smooth [Bilateral] , スムース[二股] Smooth [Block PCA] , スムーズ[ブロックPCA] Smooth [Diffusion] , スムーズ【拡散 Smooth [Geometric-Median] , スムース[ジオメトリック・メディアン] Smooth [Guided] , スムーズ【ガイド付き Smooth [IUWT] , スムース[IUWT] Smooth [Mean-Curvature] , スムーズ[平均曲率] Smooth [Median] , スムーズ[中央値] Smooth [NL-Means] , スムーズ[NL-Means] Smooth [Patch-Based] , スムーズな【パッチベース Smooth [Patch-PCA] , スムース[パッチ-PCA] Smooth [Perona-Malik] , スムーズ【ペローナ=マリック Smooth [Selective Gaussian] , スムーズ[選択的ガウス] Smooth [Skin] , なめらかな【肌 Smooth [Thin Brush] , スムース【細筆 Smooth [Total Variation] , スムーズ【総バラツキ Smooth [Wavelets] , スムーズ [ウェーブレット] Smooth [Wiener] , スムース[ウィンナー] Smooth Abstract , 滑らかなアブストラクト Smooth Amount , スムーズ量 Smooth Clear , スムーズクリア Smooth Colors , 滑らかな色 Smooth Crome-Ish , スムースクローム・アイシュ Smooth Dark , スムースダーク Smooth Fade , スムースフェード Smooth Green Orange , スムースグリーンオレンジ Smooth Light , スムーズライト Smooth Looping , 滑らかなループ Smooth Only , スムーズのみ Smooth Sailing , スムーズセーリング Smooth Teal Orange , スムースティールオレンジ Smoothen Background Reconstruction , 背景の再構築をスムーズにする Smoother Edge Protection , スムーズなエッジ保護 Smoother Sharpness , より滑らかなシャープネス Smoother Softness , より滑らかな柔らかさ Smoothing , スムージング Smoothing Style , スムーズなスタイル Smoothing Type , スムージングタイプ Smoothness , 滑らかさ Smoothness (%) , 滑らかさ(%) Smoothness (px) , 滑らかさ (px) Smoothness Shadow , スムーズネスシャドウ Smoothness Type , 滑らかさのタイプ Snowflake , スノーフレーク Snowflake 2 , スノーフレーク2 Snowflake Recursion , 雪の結晶の再帰 Sobel-X , ソベルエックス Sobel-Y , ソベルワイ Soft , 柔らかい Soft Light , ソフトライト Soft Burn , ソフトバーン Soft Dodge , ソフトダッジ Soft Fade , ソフトフェード Soft Glow , ソフトグロー Soft Glow [Animated] , ソフトグロー[アニメ化] Soft Light , ソフトライト Soft Random Shades , ソフトランダムシェード Soft Warming , 柔らかな暖かさ Softburn , ソフトバーン Softdodge , ソフトドッジ Soften , 柔らかくする Soften All Channels , すべてのチャンネルを柔らかくする Soften Guide , ソフトガイド Softlight , ソフトライト Solarize , ソラライズ Solarize Color , ソラライズカラー Solarized Color2 , ソラライズドカラー2 Solidify , 凝固 Solve Maze , 迷路を解く Some , いくつかの Some Blue , いくつかのブルー Some Cyan , いくつかのシアン Some Green , いくつかのグリーン Some Key , いくつかのキー Some Magenta , いくつかのマゼンタ Some Red , いくつかの赤 Some Yellow , いくつかの黄色 Sort Colors , 色を並べ替える Sorting Criterion , 並び替え基準 Source (%) , 出所(%) Source Color #1 , ソースカラー#1 Source Color #10 , ソースカラー#10 Source Color #11 , ソースカラー #11 Source Color #12 , ソースカラー#12 Source Color #13 , ソースカラー#13 Source Color #14 , ソースカラー#14 Source Color #15 , ソースカラー#15 Source Color #16 , ソースカラー#16 Source Color #17 , ソースカラー#17 Source Color #18 , ソースカラー#18 Source Color #19 , ソースカラー#19 Source Color #2 , ソースカラー #2 Source Color #20 , ソースカラー#20 Source Color #21 , ソースカラー#21 Source Color #22 , ソースカラー#22 Source Color #23 , ソースカラー#23 Source Color #24 , ソースカラー#24 Source Color #3 , ソースカラー#3 Source Color #4 , ソースカラー#4 Source Color #5 , ソースカラー#5 Source Color #6 , ソースカラー#6 Source Color #7 , ソースカラー#7 Source Color #8 , ソースカラー#8 Source Color #9 , ソースカラー#9 Source X-Tiles , ソースXタイル Source Y-Tiles , ソースYタイル Space , スペース Spacing , 間隔 Span , スパン Spatial Bandwidth , 空間帯域幅 Spatial Metric , 空間メトリック Spatial Overlap , 空間的なオーバーラップ Spatial Precision , 空間精度 Spatial Radius , 空間半径 Spatial Regularization , 空間正規化 Spatial Sampling , 空間サンプリング Spatial Scale , 空間スケール Spatial Tolerance , 空間公差 Spatial Transition , 空間遷移 Spatial Variance , 空間分散 Special Effects , 特殊効果 Specific Saturation , 比飽和度 Specify Different Output Size , 異なる出力サイズを指定 Specify HaldCLUT As , HaldCLUTを次のように指定します。 Specular , スペキュラ Specular (%) , 鏡面 (%) Specular Centering , スペキュラーセンタリング Specular Intensity , 鏡面強度 Specular Light , スペキュラーライト Specular Lightness , スペキュラの明るさ Specular Shininess , スペキュラーシャイニー Specular Size , 鏡面サイズ Speed , スピード Sphere , スフィア Spherize , 球形化 Spiral , スパイラル Spiral RGB , スパイラルRGB Spline B1 , スプラインB1 Spline B2 , スプラインB2 Spline B3 , スプラインB3 Spline B4 , スプラインB4 Spline B5 , スプラインB5 Spline B6 , スプラインB6 Spline Editor , スプラインエディタ Spline Max Angle (deg) , スプライン最大角度(deg) Spline Max Length (px) , スプラインの最大長さ (px) Spline Roundness , スプライン真円度 Splines , スプライン Split Base and Detail Output , ベースと詳細出力の分割 Split Brightness / Colors , 割れた明るさ/色 Split Details [Alpha] , 分割詳細【アルファ Split Details [Gaussian] , スプリットの詳細 [ガウス] Split Details [Wavelets] , スプリットの詳細 [ウェーブレット] Sponge , スポンジ Spotify , スポティファイ Spread , スプレッド Spread Amount , スプレッド量 Spread Angles , スプレッドアングル Spread Noise Amount , 拡散ノイズ量 Spreading , 拡散 Spring Morning , 春の朝 Sprocket 231 , スプロケット 231 Spy 29 , スパイ29 Square , スクエア Square (Inv.) , スクエア(Inv. Square 1 , スクエア1 Square 2 , スクエア2 Square to Circle , 正方形から円へ Squared-Euclidean , 二乗ユークリッド Squares , 正方形 Squares (Outline) , 正方形(アウトライン SRGB , エスアールジービービー SRGB Conversion , SRGB変換 Stabilizer , スタビライザー Stained Glass , ステンドグラス Stamp , スタンプ Standard , 標準 Standard (256) , 標準 (256) Standard [No Scan] , スタンダード [スキャンなし] Standard Deviation , 標準偏差 Star , 星 Star: -5*(z^3/3-Z/4)/2 , スターです。-5*(z^3/3-z/4)/2 Stardust , スターダスト Stars , 星 Stars (Outline) , 星(概要 Start Angle , 開始角度 Start Color , スタートカラー Start Frame Number , 開始フレーム番号 Start of Mid-Tones , ミッドトーン開始 Starting Angle , 開始角度 Starting Color , 開始色 Starting Feathering , フェザーリングの開始 Starting Frame , スタートフレーム Starting Level , 開始レベル Starting Pattern , 開始パターン Starting Point , 出発点 Starting Point (%) , 開始点(%) Starting Scale (%) , 開始スケール(%) Starting Value , 開始値 Stationary Frames , 据え置き型フレーム Std Angle (deg.) , 標準角度(deg.) Std Branching , 標準分岐 Std Length Factor (%) , 標準長さ係数(%) Std Thickness Factor (%) , 標準厚さ係数(%) Stencil , ステンシル Stencil Type , ステンシルタイプ Step , ステップ Step (%) , ステップ(%) Steps , ステップ Stereo Image , ステレオ画像 Stereo Window Position , ステレオウィンドウの位置 Stereographic Projection , 立体投影 Stereoscopic Image Alignment , 立体画像アライメント Stereoscopic Window Position , 立体視窓の位置 Straight , ストレート Strands , ストランド Streak , ストリーク Street , 通り Strength , 強さ Strength (%) , 強度(%) Strength Effect , 強度効果 Strength Highlights , 強さのハイライト Strength Midtones , ストレングス ミッドトーン Strength Shadows , ストレングスシャドウズ Stretch , ストレッチ Stretch Colors , ストレッチカラー Stretch Contrast , ストレッチ コントラスト Stretch Factor , ストレッチファクター Strip , ストリップ Stripe Orientation , ストライプの向き Stroke , ストローク Stroke Angle , ストローク角度 Stroke Length , ストローク長 Stroke Strength , ストローク強度 Strong , 強い Structure Smoothness , 構造の平滑性 Studio , スタジオ Studio Skin Tone Shaper , スタジオスキントーンシェイパー Style , スタイル Style Variations , スタイルバリエーション Stylize , スタイライズ Subdivisions , 分科会 Subpixel Interpolation , サブピクセル補間 Subpixel Level , サブピクセルレベル Subsampling (%) , サブサンプリング(%) Subtle Blue , 微妙なブルー Subtle Green , 微妙なグリーン Subtle Yellow , 微妙な黄色 Subtract , 減算 Subtractive , 減算的 Summer , 夏 Summer (alt) , 夏 (alt) Sunny , サニー Sunny (alt) , サニー Sunny (rich) , サニー(金持ち Sunny (warm) , 晴れ(暖かい Super Warm , スーパーウォーム Super Warm (rich) , スーパーウォーム(リッチ Super-Pixels , スーパーピクセル Superformula , スーパーフォーミュラー Superimpose with Original? , オリジナルとスーパーインポーズ? Surface Disturbance , 表面撹乱 Surface Disturbance Multiplier , 表面擾乱乗数 Sutro FX , スートロFX Swan , 白鳥 Swap , スワップ Swap Colors , スワップカラー Swap Layers , レイヤーを入れ替える Swap Radius / Angle , 半径/角度を交換 Swap Sides , スワップサイド Sweet Bubblegum , スウィートバブルガム Sweet Gelatto , 甘いジェラート Symmetric 2D Shape , 対称2次元形状 Symmetrize , 対称化 Symmetry , 対称性 Symmetry Sides , シンメトリーサイド Synthesis Scale , 合成スケール Taiga , たいが Tan(z) , タン(z) Tangent Radius , 接線半径 Taquin , タキン Target Color #1 , ターゲットカラー#1 Target Color #10 , ターゲットカラー#10 Target Color #11 , ターゲットカラー #11 Target Color #12 , ターゲットカラー#12 Target Color #13 , ターゲットカラー#13 Target Color #14 , ターゲットカラー#14 Target Color #15 , ターゲットカラー#15 Target Color #16 , ターゲットカラー#16 Target Color #17 , ターゲットカラー#17 Target Color #18 , ターゲットカラー#18 Target Color #19 , ターゲットカラー#19 Target Color #2 , ターゲットカラー #2 Target Color #20 , ターゲットカラー#20 Target Color #21 , ターゲットカラー#21 Target Color #22 , ターゲットカラー #22 Target Color #23 , ターゲットカラー #23 Target Color #24 , ターゲットカラー#24 Target Color #3 , ターゲットカラー#3 Target Color #4 , ターゲットカラー#4 Target Color #5 , ターゲットカラー#5 Target Color #6 , ターゲットカラー#6 Target Color #7 , ターゲットカラー#7 Target Color #8 , ターゲットカラー#8 Target Color #9 , ターゲットカラー#9 Tarraco , タラコ Teal Fade , ティールフェード Teal Magenta Gold , ティール マゼンタ ゴールド Teal Moonlight , ティールムーンライト Teal Orange , ティールオレンジ Teal Orange 1 , ティールオレンジ1 Teal Orange 2 , ティールオレンジ2 Teal Orange 3 , ティールオレンジ3 TechnicalFX - Backlight Filter , TechnicalFX - バックライトフィルタ Teddy , テディ Teigen 28 , テイゲン28 Temperature Balance , 温度バランス Ten Layers , 10層 Tends to Be Square , スクエアになりがち Tension Green 1 , テンショングリーン1 Tension Green 2 , テンショングリーン2 Tension Green 3 , テンショングリーン3 Tension Green 4 , テンショングリーン4 Tensor Smoothness , テンソル平滑度 Terra 4 , テラ4 Tertiary Factor , 第三次因子 Tertiary Gamma , 第三次ガンマ Tertiary Shift , 第三次シフト Tertiary Twist , 第三次ツイスト Tetris , テトリス Text , テキスト Texture , テクスチャ Texture Enhance , テクスチャ強化 Textured Glass , テクスチャードガラス The Game of Life , 人生のゲーム The Matrices , 行列 Thelypteridaceae , フトモモ科 Thickness , 厚み Thickness (%) , 厚み(%) Thickness (px) , 厚さ(px) Thickness Factor , 厚み係数 Thin Edges , 薄いエッジ Thin Separators , 薄型セパレータ Thinness , 薄さ Thinning , 間引き Thinning (Slow) , 間引き(スロー Three Layers , 三層構造 Threshold , しきい値 Threshold (%) , しきい値(%) Threshold Etch , しきい値エッチング Threshold High , しきい値が高い Threshold Low , しきい値が低い Threshold Max , しきい値最大値 Threshold Mid , しきい値中間値 Threshold On , しきい値 Thriller 2 , スリラー2 Thumbnail Size , サムネイルサイズ Tic-Tac-Toe , チックタックトウ Tiger , 虎 Tikhonov , ティコノフ Tile Poles , タイルポール Tile Size , タイルサイズ Tileable Rotation , タイル化可能な回転 Tiled Isolation , タイル張りのアイソレーション Tiled Normalization , タイル状の正規化 Tiled Parameterization , タイル化されたパラメータ化 Tiled Preview , タイル張りのプレビュー Tiled Random Shifts , タイル状のランダムシフト Tiled Rotation , タイル張りの回転 Tiles , タイル Tiles to Layers , タイルからレイヤーへ Tilt , 傾き Time , 時間 Time Step , タイムステップ Timed Image , タイムドイメージ Tiny , ちっちゃい To Equirectangular , 間接角へ To Nadir / Zenith , ナディールへ/ゼニス Toasted Garden , トーストガーデン Toes , つま先 Toggle to View Base Image , ベース画像を表示するにはトグル Tolerance , 許容範囲 Tolerance to Gaps , ギャップへの耐性 Tonal Bandwidth , 同調帯域幅 Tone Blur , トーンブラー Tone Enhance , トーン強化 Tone Gamma , トーンガンマ Tone Mapping , トーンマッピング Tone Mapping (%) , トーンマッピング (%) Tone Mapping [Fast] , トーンマッピング[高速] Tone Mapping Fast , トーンマッピングの高速化 Tone Mapping Soft , トーンマッピングソフト Tone Presets , トーンプリセット Tone Threshold , トーンしきい値 Tones Range , 音色の範囲 Tones Smoothness , トーンの滑らかさ Tones to Layers , トーンからレイヤーへ Top , トップ Top Layer , 最上層 Top Left , 左上 Top Right , 右上 Top-Left Vertex (%) , 左上頂点 (%) Top-Right Vertex (%) , 右上頂点(%) Torus , トーラス Total Layers , 総層数 Total Variation , 総バラツキ Transfer Colors [Histogram] , 転写色[ヒストグラム] Transfer Colors [Patch-Based] , トランスファーカラー[パッチベース] Transfer Colors [PCA] , トランスファーカラー[PCA] Transfer Colors [Variational] , トランスファーカラー【バリエーション Transform , トランスフォーム Transition Map , トランジションマップ Transition Shape , トランジション形状 Transition Smoothness , 遷移の滑らかさ Transmittance Map , 透過率マップ Transparency , 透明性 Transparent , 透明な Transparent Background , 透明な背景 Transparent Black & White , 透明なブラック&ホワイト Transparent Color , 透明な色 Transparent on Black , 黒地に透明 Transparent on White , 白地に透明 Transparent Skin , 透明な肌 Tree , ツリー Trent 18 , トレント十八 Triangle , 三角形 Triangles , 三角形 Triangles (Outline) , 三角形(アウトライン Triangular Ha , 三角ハ Triangular Hb , 三角Hb Triangular Va , 三角Va Triangular Vb , 三角Vb Tritanomaly , トライタノマリー Tritanopia , トリタノピア Truchet , トルシェ True Colors 8 , トゥルーカラーズ8 Trunk Color , トランクカラー Trunk Opacity (%) , 幹の不透明度 (%) Trunks , トランクス Tulips , チューリップ Tunnel , トンネル Turbulence , 乱流 Turbulence 2 , 乱流2 Turbulent Halftone , 乱流ハーフトーン Turing , チューリング Turkiest 42 , ターキエスト42 Turn on Rotate and Twirl , 回転と回転をオンにする Tweed 71 , ツイード71 Twirl , 渦巻き Twisted Rays , ツイステッドレイ Two Layers , 二層構造 Two Threads , 二本の糸 Two-By-Two , ツーバイツー Type , タイプ Type Snowflake , タイプ スノーフレーク Ultra Water , ウルトラウォーター UltraWarp++++ , ウルトラワープ++++++ Unaligned Images , アラインメントされていない画像 Undeniable , 否定できない Undeniable 2 , 否定できない2 Underwater , 水中 Undo Anaglyph , アナグリフを元に戻す Uniform , 制服 Unknown , 不明 Unpurple , アンパープル Unquantize [JPEG Smooth] , アンクオンタイズ [JPEG Smooth] Unsharp Mask , アンシャープマスク Unstrip , アンストリップ Untwist , 紐を解く Up-Left , 左上 Up-Right , アップライト Upper Layer Is the Top Layer for All Blends , 上層はすべてのブレンドのトップレイヤー Upper Side Orientation , 上面の向き Uppercase Letters , 大文字 Upscale [DCCI2x] , アップスケール [DCCI2x] Upscale [Diffusion] , アップスケール[拡散] Upscale [Scale2x] , アップスケール [Scale2x] Urban Cowboy , アーバン カウボーイ Use as Hue , 色相として使用 Use as Saturation , 彩度として使用 Use Individual Depth Map , 個別のデプスマップを使用する Use Light , ライトを使用する Use Maximum Tones , 最大トーンを使用する Use Top Layer as a Priority Mask , トップレイヤーを優先マスクとして使用する User-Defined , ユーザー定義 User-Defined (Bottom Layer) , ユーザー定義(下層) Uzbek Bukhara , ウズベクブハラ Uzbek Marriage , ウズベク人の結婚 Uzbek Samarcande , ウズベクサマルカンデ V Cutoff , Vカットオフ Val Range , バルブレンジ Value , 値 Value Action , バリューアクション Value Blending , 価値のブレンド Value Bottom , 値の底 Value Correction , 値補正 Value Factor , バリューファクター Value Normalization , 値の正規化 Value Offset , 値オフセット Value Precision , 値の精度 Value Range , 値の範囲 Value Scale , バリュースケール Value Shift , バリューシフト Value Smoothness , 値の滑らかさ Value Top , バリュートップ Value Variance , 値の分散 Values , 値 Van Gogh: Almond Blossom , ゴッホ:アーモンドブロッサム Van Gogh: Irises , ゴッホ:花菖蒲 Van Gogh: The Starry Night , ゴッホ:星降る夜 Van Gogh: Wheat Field with Crows , ゴッホ:カラスのいる麦畑 Variability , 変動性 Variance , バリエーション Variation A , バリエーションA Variation B , バリエーションB Variation C , バリエーションC Vector Painting , ベクターペイント Velocity , 速度 Velvetia , ベルベティアもく Velvia , ベルビア Vertex Type , 頂点タイプ Vertical , 垂直方向 Vertical (%) , 垂直方向(%) Vertical 1 Amount , 縦型 1 金額 Vertical 1 Length , 縦 1 長さ Vertical 2 Amount , 縦型2 金額 Vertical 2 Length , 縦 2 長さ Vertical Amount , 鉛直量 Vertical Array , 垂直配列 Vertical Blur , 垂直方向のぼかし Vertical Length , 垂直方向の長さ Vertical Size (%) , 縦寸法(%) Vertical Stripes , 縦縞 Vertical Tiles , 縦型タイル Very Course 5 , ベリーコース5 Very Fine , 非常に良い Very High , 非常に高い Very High (Even Slower) , 非常に高い(さらに遅い Very Warm Greenish , 非常に暖かい緑がかった Vibrant , 鮮やかな Vibrant (alien) , 元気な(宇宙人 Vibrant (contrast) , 鮮やかな(コントラスト Vibrant (crome-Ish) , バイブラント(クロームイッシュ Victory , 勝利 View Outlines Only , アウトラインのみを表示 View Resolution , 解像度を見る Vignette , ビネット Vignette Contrast , ビネットのコントラスト Vignette Max Radius , ビネット最大半径 Vignette Min Radius , ビネット最小半径 Vignette Size , ビネットサイズ Vignette Strength , ビネットの強さ Vignette Strenth , ビネット強度 Vintage , ヴィンテージ Vintage (alt) , ヴィンテージ Vintage (brighter) , ヴィンテージ(明るめ Vintage 163 , ヴィンテージ163 Vintage Chrome , ヴィンテージクローム Vintage Style , ヴィンテージスタイル Vintage Tone (%) , ヴィンテージトーン (%) Vintage Warmth 1 , ヴィンテージの暖かさ 1 Vireo 37 , ビレオ37 Virtual Landscape , バーチャルランドスケープ Visible Watermark , 目に見える透かし Vivid Edges , ビビッドエッジ Vivid Edges* , ビビッドエッジ Vivid Light , ビビッドライト Vivid Screen , ビビッドスクリーン Vividlight , ビビッドライト Voronoï , ボロノ。 Wall , 壁 Warhol , ウォーホール Warm , 暖かさ Warm (highlight) , 暖かい(ハイライト Warm (yellow) , 暖色系(黄色 Warm Dark Contrasty , 暖かみのあるダークコントラスト Warm Fade , ウォームフェード Warm Fade 1 , ウォームフェード1 Warm Neutral , 暖かみのあるニュートラル Warm Sunset Red , 暖かいサンセットレッド Warm Teal , ウォームティール Warm Vintage , 温かみのあるヴィンテージ Warp [Interactive] , ワープ[インタラクティブ] Warp by Intensity , 強度によるワープ Water , 水 Waterfall , ウォーターフォール Wave , 波 Wave(s) , 波 Wavelength , 波長 Wavelet , ウェーブレット Waves Amplitude , 波の振幅 Waves Smoothness , 波の滑らかさ We'll See , 拝見させていただきます Weave , 織り方 Weird , 奇妙な Whirl Drawing , 渦巻き図面 Whirls , 渦巻き White , ホワイト White Dices , ホワイトダイス White Layers , 白い層 White Level , 白レベル White on Black , 黒地に白 White on Transparent , 透明な上の白 White on Transparent Black , 透明な黒に白 White Point , ホワイトポイント White to Black , 白から黒へ White Walls , 白い壁 Whitening , ホワイトニング Whiter Whites , より白い白人 Whites , 白人 Width , 幅 Width (%) , 幅(%) Wind , 風 Winter Lighthouse , 冬の灯台 Wipe , 拭き取り Wireframe , ワイヤーフレーム Wiremap , ワイヤマップ Without , なくても Wooden Gold 20 , 木製ゴールド20 Work on Frameset , フレームセットの作業 Wrap , ラップ X Center , X センター X Origine , X オリジン X(t) , X(t) X-Amplitude , エックス振幅 X-Angle , Xアングル X-Axis , X軸 X-Axis Then Y-Axis , X 軸、次に Y 軸 X-Border , エックスボーダー X-Center , エックスセンター X-Centering , エックスセンタリング X-Centering (%) , X-センタリング (%) X-Coordinate , エックス座標 X-Coordinate [Manual] , X座標[マニュアル] X-Curvature , X曲率 X-Dispersion , エックスディスパーション X-End (%) , Xエンド(%) X-Factor , エックスファクター X-Factor (%) , Xファクター(%) X-Light , エックスライト X-Max , エックスマックス X-Min , エックスミン X-Motion , エックスモーション X-Multiplier , X倍数器 X-Offset , エックスオフセット X-Offset (%) , X オフセット (%) X-Ratio , エックスレシオ X-Resolution , X解像度 X-Rotation , エックスローテーション X-Scale , エックススケール X-Seed (Julia) , エックスシード(ジュリア X-Shadow , エックスシャドー X-Shift , エックスシフト X-Shift (%) , Xシフト(%) X-Shift (px) , Xシフト (px) X-Size , エックスサイズ X-Size (px) , Xサイズ(px) X-Smoothness , X-スムースネス X-Tiles , エックスタイルズ X-Variations , X変化 X/Y-Ratio , X/Y比 X1 (none) , X1 (なし) Xor , Xor XY Mirror , XYミラー XY-Amplitude , XY振幅 XY-Axes , XY軸 XY-Axis , XY軸 XY-Coordinates (%) , XY座標(%) XY-Factor , XY因子 XY-Light , XYライト XYZ , XYZ XYZ8 , XYZ8 Y Center , Yセンター Y Origine , Y オリジン Y(t) , Y(t) Y-Amplitude , Y振幅 Y-Angle , Y角 Y-Axis , Y軸 Y-Axis Then X-Axis , Y軸、次にX軸 Y-Border , Yボーダー Y-Center , Yセンター Y-Centering , Yセンタリング Y-Centering (%) , Yセンタリング(%) Y-Coordinate , Y座標 Y-Coordinate [Manual] , Y座標[マニュアル] Y-Curvature , Y曲率 Y-Dispersion , Y分散 Y-End (%) , Yエンド(%) Y-Factor , Y因子 Y-Factor (%) , Y係数(%) Y-Light , Yライト Y-Motion , Y運動 Y-Multiplier , Y倍数 Y-Offset , Yオフセット Y-Offset (%) , Yオフセット(%) Y-Ratio , Y比 Y-Resolution , Y分解能 Y-Rotation , Y回転 Y-Scale , Yスケール Y-Seed (Julia) , Yシード(ジュリア Y-Shadow , Yシャドー Y-Shift , Yシフト Y-Shift (%) , Yシフト Y-Shift (px) , Yシフト (px) Y-Size , Yサイズ Y-Size (px) , Yサイズ(px) Y-Smoothness , Y-平滑度 Y-Start (%) , Yスタート(%) Y-Tiles , Yタイル Y-Variations , Y変化 Y-Warping , Yワーピング YAG Effect , YAG効果 YCbCr , YCbCr YCbCr (Chroma Only) , YCbCr(クロマのみ YCbCr (Distinct) , YCbCr (識別) YCbCr (Luma Only) , YCbCr (Lumaのみ) YCbCr (Mixed) , YCbCr(混合 YCbCr [Blue Chrominance] , YCbCr [ブルークロミナンス] YCbCr [Blue-Red Chrominances] , YCbCr[青赤クロミナンス YCbCr [Green Chrominance] , YCbCr [グリーンクロミナンス] YCbCr [Luminance] , YCbCr [輝度] YCbCr [Red Chrominance] , YCbCr [レッドクロミナンス] Yellow , イエロー Yellow 55B , 黄 55B Yellow Factor , イエローファクター Yellow Film 01 , イエローフィルム01 Yellow Shift , イエローシフト Yellow Smoothness , 黄色の滑らかさ Yellowstone , イエローストーン YIQ , イーアイキュー YIQ [chromas] , YIQ [クロマス] YIQ [Luma] , YIQ[ルーマ] YIQ8 , YIQ8 You Can Do It , あなたはそれを行うことができます YUV , ユヴ YUV8 , ユーブイエイト Z-Angle , Z角 Z-Light , Z-ライト Z-Motion , Z運動 Z-Multiplier , Z倍数 Z-Offset , Zオフセット Z-Range , Zレンジ Z-Rotation , Z回転 Z-Scale , Zスケール Z-Size , Zサイズ Zed 32 , ゼット32 Zeke 39 , ジーク三十九 Zelda , ゼルダ Zero , ゼロ ZilverFX - B&W Solarization , ZilverFX - 白黒ソラリゼーション ZilverFX - Vintage B&W , ZilverFX - ビンテージ白黒 Zone System , ゾーンシステム Zoom , ズーム Zoom (%) , ズーム(%) Zoom Center , ズームセンター Zoom Factor , ズームファクター Zoom In , ズームイン Zoom Out , ズームアウト ================================================ FILE: translations/filters/gmic_qt_nl.csv ================================================ Arrays & Tiles , Arrays & Tegels Artistic , Artistiek Black & White , Zwart-wit Colors , Kleuren Contours , Contouren Deformations , Vervormingen Degradations , Verslechteringen Details , Details Testing , Het testen van Frames , Frames Frequencies , Frequenties Layers , Lagen Lights & Shadows , Licht en schaduw Patterns , Patronen Rendering , Rendering Repair , Reparatie Sequences , Volgorde Silhouettes , Silhouetten Icons , Pictogrammen Misc , Overige Nature , Natuur Others , Andere Stereoscopic 3D , Stereoscopisch 3D ♥ Support Us ! ♥ , ♥ Steun ons ! ♥ *Colors Doping , *Kleuren Doping *Colors Doping* , *Kleuren Doping* *Comix Colors* , *Comix Kleuren* *Dark Edges* , *Donkere randen* *Dark Screen* , *Donker scherm* *Graphix Colors , *Graphix Kleuren *Vivid Edges* , *Vividuele randen* *Vivid Screen* , *Vividueel scherm* - NO - , - NEE - -1. Value Action , -1. Waarde Actie -2. Overall Channel(s) , -2. Totale kanaal(en) -3. Normalisation Channel(s) , -3. Normalisatiekanaal(en) -4. Normalise , -4. Normaliseer 0. Recompute , 0. Recomputeer 1 Levels , 1 Niveaus 1. Plasma Texture [Discards Input Image] , 1. 1. Plasmastructuur [Invoerafbeelding weggooien] 10. Quadtree Max Precision , 10. 10. Quadtree Max Precisie 10th , 10e 10th Color , 10e kleur 11. Quadtree Min Homogeneity , 11. 11. Quadtree Min. Homogeniteit 11th , 11e 12 Colors , 12 Kleuren 12 Grays , 12 Grijzen 12. Quadtree Max Homogeneity , 12. 12. Quadtree Max Homogeniteit 125 Keypoints , 125 Kernpunten 12th , 12e 13. Noise Type , 13. 13. Geluidstype 13th , 13e 14. Minimum Noise , 14. 14. Minimaal geluid 14th , 14e 15. Maximum Noise , 15. 15. Maximaal geluid 15th , 15e 16 Colors , 16 Kleuren 16 Grays , 16 Grijzen 16. Noise Channel(s) , 16. 16. Geluidskanaal(en) 16th , 16e 17. Warp Iterations , 17. 17. Warp Iteraties 18. Warp Intensity , 18. 18. Warpintensiteit 19. Warp Offset , 19. 19. Scheefstandcompensatie 1st , 1e 1st Additional Palette (.Gpl) , 1ste Extra Palet (.Gpl) 1st Color , 1ste kleur 1st Parameter , 1e Parameter 1st Text , 1e tekst 1st Tone , 1e Toon 1st Variance , 1ste variant 1st X-Coord , 1e X-Coord 1st Y-Coord , 1e Y-Coord 2 Colors , 2 Kleuren 2 Grays , 2 Grijzen 2 Noise , 2 Geluid 2-Strip Process , 2-strooksproces 2. Plasma Scale , 2. 2. Plasmaschaal 20. Scale to Width , 20. 20. Schaal naar Breedte 21. Scale to Height , 21. 21. Schaal naar hoogte 216 Keypoints , 216 Kernpunten 22. Correlated Channels , 22. 22. Correlationele kanalen 22.5 Deg. , 22,5 Deg. 23. Boundary , 23. 23. Grenswaarde 24. Warp Channel(s) , 24. 24. Warpkanaal(en) 25. Random Negation , 25. 25. Willekeurige ontkenning 26. Random Negation Channel(s) , 26. 26. Willekeurig negatiekanaal (-kanalen) 27 Keypoints , 27 Kernpunten 27. Gamma Offset , 27. 27. Gamma-compensatie 28. Hue Offset , 28. 28. Tijdcompensatie 29. Normalise , 29. 29. Normaliseer 2nd , 2e 2nd Additional Palette (.Gpl) , 2e Extra Palet (.Gpl) 2nd Color , 2de kleur 2nd Parameter , 2e Parameter 2nd Text , 2e tekst 2nd Tone , 2e Toon 2nd Variance , 2de variant 2nd X-Coord , 2e X-Coord 2nd Y-Coord , 2e Y-Coord 2XY Mirror , 2XY Spiegel 3 Colors , 3 Kleuren 3 Grays , 3 Grijzen 3. Plasma Alpha Channel , 3. 3. Plasma-alpha-kanaal 30. Minimum Hue , 30. 30. Minimale tint 31. Maximum Hue , 31. 31. Maximale tint 32. Minimum Saturation , 32. 32. Minimale verzadiging 33. Maximum Saturation , 33. 33. Maximale verzadiging 34. Minimum Value , 34. 34. Minimumwaarde 343 Keypoints , 343 Kernpunten 35. Maximum Value , 35. 35. Maximale waarde 36. Hue Offset , 36. 36. Tijdcompensatie 37. Saturation Offset , 37. 37. Verzadigingscompensatie 38. Value Offset , 38. 38. Waardevergelijking 3D Blocks , 3D-blokken 3D CLUT (Fast) , 3D CLUT (snel) 3D CLUT (Precise) , 3D CLUT (Precies) 3D Colored Object , 3D-gekleurd object 3D Conversion , 3D-omzetting 3D Elevation , 3D Elevatie 3D Elevation [Animated] , 3D Elevatie [Geanimeerd] 3D Extrusion , 3D Extrusie 3D Extrusion [Animated] , 3D Extrusie [Geanimeerd] 3D Image Object , 3D-beeldobject 3D Image Object [Animated] , 3D-beeldobject [Geanimeerd] 3D Image Type , 3D-beeldtype 3D Lathing , 3D-latten 3D Metaballs , 3D-metaballen 3D Random Objects , 3D-Willekeurige objecten 3D Reflection , 3D-reflectie 3D Rubber Object , 3D-rubber voorwerp 3D Starfield , 3D-sterrenveld 3D Text Pointcloud , 3D Tekst Puntenwolk 3D Tiles , 3D-tegels 3D Video Conversion , 3D Videoconversie 3D Waves , 3D-golven 3rd , 3e 3rd Color , 3de kleur 3rd Parameter , 3de Parameter 3rd Tone , 3e Toon 3rd X-Coord , 3e X-Coord 3rd Y-Coord , 3e Y-Coord 4 Colors , 4 Kleuren 4 Grays , 4 Grijzen 4. Segmentation [No Alpha Channel] , 4. 4. Segmentatie [Geen alfakanaal] 4096x4096 Layer , 4096x4096 Laag 4th , 4e 4th Color , 4e kleur 4th Tone , 4e Toon 5. Edge Threshold , 5. 5. Randdrempel 512x512 Layer , 512x512 Laag 5th , 5e 5th Color , 5e Kleur 5th Tone , 5e Toon 6. Smoothness , 6. 6. Vlotheid 60's (faded Alt) , 60's (vervaagde Alt) 60's (faded) , 60's (vervaagd) 64 (Faster) , 64 (Sneller) 64 Keypoints , 64 Kernpunten 67.5 Deg. , 67,5 Deg. 6th , 6e 6th Color , 6e Kleur 6th Tone , 6e Toon 7. Blur , 7. 7. Vervagen 7th , 7e 7th Color , 7e Kleur 7th Tone , 7e Toon 8 Colors , 8 Kleuren 8 Grays , 8 Grijzen 8 Keypoints (RGB Corners) , 8 Kernpunten (RGB-hoeken) 8. Quadtree Pixelisation [No Alpha Channel] , 8. 8. Quadtree Pixelisatie [Geen alfakanaal] 8th , 8e 8th Color , 8e kleur 8th Tone , 8e Toon 9. Quadtree Min Precision , 9. 10. Quadtree Min Precisie 9th , 9e 9th Color , 9e kleur [Cyan]MYK , [Cyan] MYK A Lot of Cyan , Veel Cyaan A Lot of Key , Heel veel sleutel A Lot of Magenta , Veel Magenta A Lot of Yellow , Veel Geel A-Color Factor , A-Kleurfactor A-Color Shift , A-Kleurverschuiving A-Color Smoothness , A-Kleur Gladheid A-Value , A-Waarde A4 / 100 PPI (Recommended) , A4 / 100 PPI (Aanbevolen) About G'MIC , Over G'MIC Absolute Brightness , Absolute Helderheid Absolute Value , Absolute waarde Abstraction , Abstractie Acceleration , Versnelling Achromatopsia , Achromatopsie Action , Actie Action #1 , Actie #1 Action #10 , Actie #10 Action #11 , Actie #11 Action #12 , Actie #12 Action #13 , Actie #13 Action #14 , Actie #14 Action #15 , Actie #15 Action #16 , Actie #16 Action #17 , Actie #17 Action #18 , Actie 18 Action #19 , Actie #19 Action #2 , Actie 2 Action #20 , Actie #20 Action #21 , Actie #21 Action #22 , Actie #22 Action #23 , Actie #23 Action #24 , Actie #24 Action #3 , Actie 3 Action #4 , Actie 4 Action #5 , Actie 5 Action #6 , Actie 6 Action #7 , Actie 7 Action #8 , Actie #8 Action #9 , Actie #9 Action Magenta 01 , Actie Magenta 01 Action Red 01 , Actie Rood 01 Activate 'Pencil Smoother' , Activeer 'Pencil Smoother' Activate Color Enhancement , Activeer Kleurverbetering Activate Colors Geometric Shapes , Activeer Kleuren Geometrische Vormen Activate Custom Filter , Activeer aangepaste filter Activate Lizards , Hagedissen activeren Activate Mirror , Activeer Spiegel Activate Pink Elephants , Activeer Roze Olifanten Activate Second Direction , Activeer Tweede Richting Activate Shakes , Activeer Shakes Activate Slice 1 , Activeer Slice 1 Activate Slice 2 , Activeer Slice 2 Activate Slice 3 , Activeer Slice 3 Activate Slice 4 , Activeer Slice 4 Activer Symmetrizoscope , Activersymmetrizoscoop Adaptive , Adaptief Add , Voeg toe Add 1px Outline , Voeg 1px Outline toe Add Alpha Channels to Detail Scale Layers , Voeg alfakanalen toe aan detailschaallagen Add as a New Layer , Toevoegen als nieuwe laag Add Chalk Highlights , Krijthoogtepunten toevoegen Add Color Background , Kleur achtergrond toevoegen Add Comment Area in HTML Page , Commentaargebied toevoegen in HTML-pagina Add Grain , Graan toevoegen Add Image Label , Afbeeldingsetiket toevoegen Add Painter's Touch , Schilderstip toevoegen Add User-Defined Constraints (Interactive) , Gebruikergedefinieerde beperkingen toevoegen (Interactief) Additional Duplicates Count , Extra Duplicaten Tellen Additional Outline , Extra overzicht Additive , Additief Adjust Background Reconstruction , Aanpassen Achtergrond Reconstructie Adventure 1453 , Avontuur 1453 Aggresive , Agressieve Aggressive Highlights Recovery 5 , Agressieve Hoogtepunten Herstel 5 Algorithm , Algoritme Aliasing , Vervreemdend Alien Green , Vreemdelingengroen Align Image Streams , Beeldstromen uitlijnen Align Layers , Lagen uitlijnen Aligned , Uitgelijnd Alignment Type , Uitlijningstype All , Allemaal All 45° Rotations , Alle 45° Rotaties All 90° Rotations , Alle 90° Rotaties All [Collage] , Alle [Collage] All but Reference Color , Allemaal behalve de Referentiekleur All Layers and Masks , Alle lagen en maskers All Tones , Alle Tonen All XY-Flips , Alle XY-Flips Allow Angle , Hoek toestaan Allow Outer Blending , Laat het buitenmengen toe Allow Self Intersections , Laat Self Intersections toe Alpha Channel , Alfa-kanaal Alpha Mode , Alfamodus Also Match Gradients , Ook overeenkomen met gradiënten Ambient (%) , Omgeving (%) Ambient Lightness , Omgevingslichtheid Amount , Bedrag Amplitude / Angle , Amplitude / Hoek Anaglypgh Green/magenta Optimized , Anaglypgh Groen/magenta Geoptimaliseerd Anaglyph Blue/yellow , Anaglyph Blauw/geel Anaglyph Blue/yellow Optimized , Anaglyph Blauw/geel Geoptimaliseerd Anaglyph Glasses Adjustment , Anaglyph Bril Aanpassing Anaglyph Green/magenta Optimized , Anaglyph Green/magenta Geoptimaliseerd Anaglyph Reconstruction , Anaglyph Reconstructie Anaglyph Red/cyan , Anaglyph Rood/cyaan Anaglyph Red/cyan Optimized , Anaglyph Rood/cyaan Geoptimaliseerd Anaglyph: Red/Cyan , Anaglyph: Rood/Cyan AnalogFX - Anno 1870 Color , AnalogFX - Anno 1870 Kleur AnalogFX - Old Style I , AnalogFX - Oude stijl I AnalogFX - Old Style II , AnalogFX - Oude stijl II AnalogFX - Old Style III , AnalogFX - Oude stijl III AnalogFX - Sepia Color , AnalogFX - Sepiakleur AnalogFX - Soft Sepia I , AnalogFX - Zachte Sepia I AnalogFX - Soft Sepia II , AnalogFX - Zachte Sepia II Analysis Scale , Analyseschaal Analysis Smoothness , Analyse Gladheid And , En Angle , Hoek Angle (%) , Hoek (%) Angle (deg) , Hoek (deg) Angle (deg.) , Hoek (deg.) Angle / Size , Hoek / Grootte Angle Cut , Haakse snede Angle Dispersion , Hoekverspreiding Angle Image Contour , Hoekbeeldcontour Angle of Disturbance Surface , Hoek van verstoring Oppervlakte Angle of Main Nebulous Surface , Hoek van het hoofdvlak van de nevel Angle Range , Hoekwaaier Angle Range (deg.) , Hoekbereik (deg.) Angle Tilt , Hoekinstelling Angle Variations , Hoekvariaties Anguish , Angstaanjagend Angular , Hoekig Angular Precision , Hoekprecisie Angular Tiles , Hoekige tegels Anisotropic , Anisotroop Anisotropy , Anisotropie Annular Steiner Chain Round Tiles , Ringvormige Steiner Chain Round Tiles Antialiasing , Anti-aliasing Antisymmetry , Antisymmetrie Any , Elke Apocalypse This Very Moment , Apocalyps op dit moment Apples , Appels Apply Adjustments On , Aanpassingen toepassen op Apply Color Balance , Kleurensaldo toepassen Apply External CLUT , Externe CLUT toepassen Apply Mask , Breng het masker aan Apply Skin Tone Mask , Huidtonenmasker aanbrengen Apply Transformation From , Transformatie toepassen Van Aqua and Orange Dark , Aqua en Oranje Donker Area , Gebied Area Smoothness , Gebied Soepelheid Areas Light Adjustment , Gebieden Lichtaanpassing Areas Smoothness , Gebieden Gladheid Array [Faded] , Array [Vervaagd] Array [Mirrored] , Array [Gespiegeld] Array [Random Colors] , Array [Willekeurige kleuren] Array [Random] , Array [Willekeurig] Array [Regular] , Array [Regelmatig] Array Mode , Array-modus Arrows , Pijlen Arrows (Outline) , Pijlen (Overzicht) Artistic Modern , Artistiek Modern Artistic Hard , Artistiek Hard Artistic Round , Artistieke ronde Ascii Art , Ascii-kunst Aspect Ratio , Aspectratio Associated Color , Bijbehorende kleur Attenuation , Verzwakking Australia , Australië Auto Balance , Autosaldo Auto Reduce Level (Level Slider Is Disabled) , Automatisch verminderingsniveau (niveau schuifregelaar is uitgeschakeld) Auto Set Hue Inverse (Hue Slider Is Disabled) , Auto Set Hue Inverse (Tintenschuif is uitgeschakeld) Auto-Clean Bottom Color Layer , Autoschone bodemkleurlaag Auto-Reduce Number of Frames , Auto-Reduce Aantal Frames Auto-Set Periodicity , Auto-Set Periodiciteit Auto-Threshold , Autodrempel Autocrop Output Layers , Autocrop Uitgangslagen Automatic , Automatisch Automatic & Contrast Mask , Automatisch & Contrastmasker Automatic [Scan All Hues] , Automatisch [Scan alle hints] Automatic Color Balance , Automatisch kleurensaldo Automatic Depth Estimation , Automatische diepteschatting Automatic Upscale for Optimum Results , Automatische Upscale voor optimale resultaten Autumn , Herfst Avalanche , Lawine Average , Gemiddelde Average 3x3 , Gemiddeld 3x3 Average 5x5 , Gemiddeld 5x5 Average 7x7 , Gemiddelde 7x7 Average 9x9 , Gemiddeld 9x9 Average RGB , Gemiddelde RGB Average Smoothness , Gemiddelde gladheid Avg / Max Weight , Avg / Max. gewicht Avg Branching , Avg-vertakking Avg Left Angle (deg.) , Avg Linkerhoek (deg.) Avg Length Factor (%) , Avg Lengte Factor (%) Avg Right Angle (deg.) , Avg Rechter Hoek (deg.) Avg Thickness Factor (%) , Avg Dikte Factor (%) Axis , As Azimuth , Azimut Azrael 93 , Azraël 93 B&W , ZW B&W Pencil [Animated] , B&W-potlood [Geanimeerd] B&W Photograph , Zwart-witfoto B&W Stencil [Animated] , B&W Stencil [Animatie] B-Color Factor , B-kleurfactor B-Color Shift , B-kleurverschuiving B-Color Smoothness , B-kleur gladheid Background , Achtergrond Background Color , Achtergrondkleur Background Intensity , Achtergrond Intensiteit Background Point (%) , Achtergrond Punt (%) Backward , Achteruit Backward Horizontal , Achteruit horizontaal Backward Vertical , Achterwaarts Verticaal Balance , Balans Balance Color , Balanskleur Balance SRGB , Balans SRGB Ball , Bal Balloons , Ballonnen Balls , Ballen Band Width , Bandbreedte Banding Denoise , Bandage Denoise Bandwidth , Bandbreedte Barbed Wire , Prikkeldraad Barnsley Fern , Gerstvaren Base Reference Dimension , Basis Referentie Maatstaf Base Scale , Basisschaal Base Thickness (%) , Basisdikte (%) Basic Adjustments , Basisaanpassingen Batch Processing , Batchverwerking Bayer Filter , Bayer-filter Bayer Reconstruction , Bayer reconstructie Behind , Achter Below , Hieronder Berlin Sky , Berlijnse hemel Best Match , Beste wedstrijd BG Textured , BG Textuur Bi-Directional , Bi-directioneel Bias , Vooringenomenheid Bicubic , Bicubisch Bidirectional [Sharp] , Bidirectioneel [Scherp] Bidirectional [Smooth] , Bidirectioneel [Soepel] Bidirectional Rendering , Bidirectionele Rendering Bilateral , Bilateraal Bilateral Radius , Bilaterale Straal Binary , Binaire Binary Digits , Binaire cijfers Bit Masking (End) , Bitmaskering (einde) Bit Masking (Start) , Bitmaskering (Start) Black , Zwart Black & White , Zwart-wit Black & White (25) , Zwart-wit (25) Black & White-1 , Zwart-wit-1 Black & White-10 , Zwart & Wit -10 Black & White-2 , Zwart-wit-2 Black & White-3 , Zwart-Wit-3 Black & White-4 , Zwart-wit-4 Black & White-5 , Zwart-Wit-5 Black & White-6 , Zwart-wit-6 Black & White-7 , Zwart-wit-7 Black & White-8 , Zwart-wit-8 Black & White-9 , Zwart-wit-9 Black Crayon Graffiti , Zwart krijt Graffiti Black Dices , Zwarte Dobbelstenen Black Level , Zwartniveau Black on Transparent , Zwart op Transparant Black on Transparent White , Zwart op Transparant Wit Black on White , Zwart op Wit Black Point , Zwart punt Black Star , Zwarte ster Black to White , Zwart op wit Blacks , Zwarten Blade Runner , Bladloper Blank , Blanco Bleach Bypass , Bleekmiddelbypass Bleach Bypass 1 , Bleekmiddelbypass 1 Bleach Bypass 2 , Bleekmiddelbypass 2 Bleach Bypass 3 , Bleekmiddelbypass 3 Bleach Bypass 4 , Bleekmiddelbypass 4 Bleech Bypass Green , Bleech Bypass Groen Bleech Bypass Yellow 01 , Bleech Bypass Geel 01 Blend , Mengen Blend [Average All] , Mengen [Gemiddeld alle] Blend [Edges] , Mengen [Randen] Blend [Fade] , Mengen [Fade] Blend [Median] , Mélange [Mediaan] Blend [Seamless] , Mengen [Naadloos] Blend [Standard] , Mengen [Standaard] Blend All Layers , Meng alle lagen Blend Decay , Mengverloop Blend Mode , Mengwijze Blend Rays , Mengstralen Blend Scales , Mengschaal Blend Size , Menggrootte Blend Threshold , Mengingsdrempel Blending Mode , Mengmode Blending Size , Het mengen van Grootte Blindness Type , Type blindheid Blob 1 Color , Blob 1 Kleur Blob 10 Color , Blob 10 Kleur Blob 11 Color , Blob 11 Kleur Blob 12 Color , Blob 12 Kleur Blob 2 Color , Blob 2 Kleur Blob 3 Color , Blob 3 Kleur Blob 4 Color , Blob 4 Kleur Blob 5 Color , Blob 5 Kleur Blob 6 Color , Blob 6 Kleur Blob 7 Color , Blob 7 Kleur Blob 8 Color , Blob 8 Kleur Blob 9 Color , Blob 9 Kleur Blob Size , Blobmaat Blobs Editor , Blobs-editor Bloc , Blok Bloc Size (%) , Blokgrootte (%) Blockism , Blockisme Bloom , Bloei Blue , Blauw Blue & Red Chrominances , Blauwe & Rode Chrominances Blue Chroma Factor , Blauwe Chroma Factor Blue Chroma Shift , Blauwe Chroma Shift Blue Chroma Smoothness , Blauwe Chroma Smoothness Blue Chrominance , Blauwe Chrominantie Blue Cold Fade , Blauwe Koude Fade Blue Dark , Blauw Donker Blue Factor , Blauwe factor Blue House , Blauw huis Blue Ice , Blauw ijs Blue Level , Blauw niveau Blue Mono , Blauwe Mono Blue Rotations , Blauwe rotaties Blue Screen Mode , Blauwschermwijze Blue Shadows 01 , Blauwe Schaduwen 01 Blue Shift , Blauwe Verschuiving Blue Smoothness , Blauwe Gladheid Blue Steel , Blauw Staal Blue Wavelength , Blauwe Golflengte Blue-Green , Blauwgroen Blur , Vervagen Blur [Angular] , Vervagen [Hoekig] Blur [Bloom] , Wazigheid [Bloom] Blur [Depth-Of-Field] , Wazigheid [Diepte-veld] Blur [Gaussian] , Waas [Gaussian] Blur [Glow] , Vervagen [Gloed] Blur [Linear] , Vervagen [Lineair] Blur [Multidirectional] , Vervagen [Multidirectioneel] Blur [Radial] , Vervagen [Radiaal] Blur Alpha , Vage Alfa Blur Amount , Wazig bedrag Blur Amplitude , Vervaagde Amplitude Blur Dodge and Burn Layer , Vage Dodge en Burn Layer Blur Factor , Vervagende factor Blur Frame , Vervagen Frame Blur Percentage , Vervagen Percentage Blur Precision , Vage Precisie Blur Shade , Vage Schaduw Blur Standard Deviation , Vage standaardafwijking Blur Strength , Vage kracht Blur the Mask , Vervaag het masker Boats , Boten Border Color , Grenskleur Border Opacity , Grensopaciteit Border Outline , Grenslijn Border Smoothness , Randvlakte Border Thickness (%) , Grensdikte (%) Border Width , Grensbreedte Both , Beide Bottles , Flessen Bottom , Bodem Bottom and Left Foreground , Onderste en linkse voorgrond Bottom and Right Foreground , Bodem en rechtervoorgrond Bottom and Top Foreground , Onderkant en bovenkant Voorgrond Bottom Layer , Bodemlaag Bottom Left , Linksonder Bottom Right , Rechtsonder Bottom Size , Bodemmaat Bottom-Left , Linksonder Bottom-Left Vertex (%) , Bodem-Links Vertex (%) Bottom-Right , Rechtsonder Bottom-Right Vertex (%) , Rechtsonderste punt (%) Bouncing Balls , Stuiterende Ballen Boundaries (%) , Grenzen (%) Boundary , Grenswaarde Boundary Condition , Randvoorwaarde Boundary Conditions , Grensvoorwaarden Box , Doos Box Fitting , Doosindeling Branches , Vestigingen Braque: Landscape near Antwerp , Braque: Landschap bij Antwerpen Braque: Little Bay at La Ciotat , Braque: Little Bay bij La Ciotat Braque: The Mandola , Braque: De Mandola Bright , Helder Bright Green , Helder groen Bright Green 01 , Helder groen 01 Bright Length , Heldere lengte Bright Pixels , Heldere Pixels Bright Teal Orange , Heldere Teal Oranje Bright Warm , Helder Warm Brighter , Helderder Brightness , Helderheid Brightness (%) , Helderheid (%) Bristle Size , Borstelgrootte Bronze , Brons Brownish , Bruinachtig Brushify , Borstelen Built-in Gray , Ingebouwde Grijs Bump Map , Bump kaart Burn , Verbranding Burn Blur , Verbrandingsonscherpte Burn Strength , Brandwondsterkte Butterfly , Vlinder By Blue Chrominance , Door Blauwe Chrominantie By Blue Component , Door Blauwe Component By Custom Expression , Door Aangepaste Uitdrukking By Green Component , Per Groene Component By Iteration , Door Iteratie By Lightness , Door Lichtheid By Luminance , Door Luminantie By Red Chrominance , Door Red Chrominance By Red Component , Door rode component By Value , Naar waarde Camera Motion Only , Alleen camerabeweging Candle Light , Kaarslicht Canvas Brightness , Helderheid van het doek Canvas Color , Kleur van het doek Canvas Darkness , Canvas Duisternis Canvas Texture , Canvasstructuur Car , Auto Card Suits , Kaartpakken Cartesian Transform , Cartesiaanse transformatie Cartoon , Beeldverhaal Cartoon [Animated] , Cartoon [Geanimeerd] Cat , Kat Category , Categorie Cell Size , Celgrootte Center , Centrum Center (%) , Centrum (%) Center Background , Centrale Achtergrond Center Foreground , Centrum Voorgrond Center Help , Centrum Hulp Center Size , Centrum Center Smoothness , Centrum Gladheid Center X , Centrum X Center X-Shift , Centrum X-Shift Center Y , Centrum Y Center Y-Shift , Centrum Y-Shift Centering (%) , Centrering (%) Centering / Scale , Centreren / Schaalverdeling Centers Color , Centra Kleur Centers Radius , Centra Straal Central Perspective Outdoor , Centraal Perspectief Buiten Central Perspective Indoor , Centraal Perspectief Binnenshuis Central Perspective Outdoor , Centraal Perspectief Buiten Centre , Centrum Chalk It Up , Krijg nou wat. Channel #1 , Kanaal 1 Channel #2 , Kanaal 2 Channel #3 , Kanaal 3 Channel Processing , Kanaalbewerking Channel(s) , Kanaal(s) Channels , Kanalen Channels to Layers , Kanalen naar Lagen Charcoal , Houtskool Checkered , Geruite Checkered Inverse , Geruite Omkering Chemical 168 , Chemisch 168 Chessboard , Schaakbord Chick , Kuiken Chroma Noise , Chromageluid Chromatic Aberrations , Chromatische afwijkingen Chromaticity From , Chromaticiteit van Chrome 01 , Chroom 01 Chrominances Only (ab) , Alleen chrominanten (ab) Chrominances Only (CbCr) , Alleen chrominanten (CbCr) Cinema , Bioscoop Cinema 2 , Bioscoop 2 Cinema 3 , Bioscoop 3 Cinema 4 , Bioscoop 4 Cinema 5 , Bioscoop 5 Cinema Noir , Bioscoop Noir Cinematic (8) , Bioscoop (8) Cinematic for Flog , Bioscoop voor Flog Cinematic Lady Bird , Filmische Damesvogel Cinematic Mexico , Cinematografisch Mexico Cinematic Travel (29) , Bioscoopreizen (29) Cinematic-01 , Cinematisch-01 Cinematic-02 , Cinematisch-02 Cinematic-03 , Cinematisch-03 Cinematic-1 , Bioscoop-1 Cinematic-10 , Cinematisch-10 Cinematic-2 , Cinematisch-2 Cinematic-3 , Cinematisch-3 Cinematic-4 , Cinematisch-4 Cinematic-5 , Cinematisch-5 Cinematic-6 , Cinematisch-6 Cinematic-7 , Cinematisch-7 Cinematic-8 , Cinematisch-8 Cinematic-9 , Cinematisch-9 Circle , Cirkel Circle (Inv.) , Cirkel (Inv.) Circle 1 , Cirkel 1 Circle 2 , Cirkel 2 Circle Abstraction , Cirkel Abstractie Circle Art , Cirkelkunst Circle to Square , Cirkel naar vierkant Circle Transform , Cirkeltransformatie Circles , Cirkels Circles (Outline) , Cirkels (Overzicht) Circles 1 , Cirkels 1 Circles 2 , Cirkels 2 Circular , Circulaire City 7 , Stad 7 Clarity , Duidelijkheid Classic Chrome , Klassiek chroom Classic Teal and Orange , Klassiek Teal en Oranje Clean , Schoonmaken Clean Text , Schone tekst Clear Control Points , Duidelijke controlepunten Clear Teal Fade , Duidelijke Teal Fade Cliff , Klif Closeup , Close-up Closing , Afsluiting Closing - Opening , Sluiten - Openen Closing - Original , Afsluiting - Origineel Clouds , Wolken CLUT from After - Before Layers , CLUT van na - voor lagen CLUT Opacity , CLUT Opaciteit CM[Yellow]K , CM[Geel]K CMY[Key] , CMY[Sleutel] CMYK [cyan] , CMYK [cyaan] CMYK [Key] , CMYK [Sleutel] CMYK [Yellow] , CMYK [Geel] CMYK Tone , CMYK-toon Coarse , Grof Coarsest (faster) , Grofste (sneller) Coefficients , Coëfficiënten Coffee 44 , Koffie 44 Coherence , Coherentie Cold Clear Blue , Koud Helder Blauw Cold Clear Blue 1 , Koud Helder Blauw 1 Cold Simplicity 2 , Koude Eenvoud 2 Color , Kleur Color (rich) , Kleur (rijk) Color 1 , Kleur 1 Color 1 (Up/Left Corner) , Kleur 1 (Boven/Linkshoek) Color 2 , Kleur 2 Color 2 (Up/Right Corner) , Kleur 2 (Omhoog/Rechterhoek) Color 3 , Kleur 3 Color 3 (Bottom/Left Corner) , Kleur 3 (Bodem/linkerhoek) Color 4 , Kleur 4 Color 4 (Bottom/Right Corner) , Kleur 4 (Bodem/Rechthoek) Color A , Kleur A Color Abstraction Opacity , Kleurenabstractie Opaciteit Color Abstraction Paint , Kleur Abstractie Verf Color B , Kleur B Color Balance , Kleurensaldo Color Basis , Kleurenbasis Color Blending , Kleurmenging Color Blindness , Kleurenblindheid Color Blue-Yellow , Kleur Blauw-Geel Color Boost , Kleurversterking Color Burn , Kleurverbranding Color C , Kleur C Color Channel Smoothing , Kleur kanaal gladstrijken Color Channels , Kleurenkanalen Color D , Kleur D Color Dispersion , Kleurverspreiding Color Doping , Kleurendoping Color E , Kleur E Color Effect Mode , De Wijze van het kleureffect Color F , Kleur F Color G , Kleur G Color Gamma , Kleurengamma Color Grading , Kleursortering Color Green-Magenta , Kleur Groen-Magenta Color Highlights , Kleurenhoogtepunten Color Image , Kleurenbeeld Color Intensity , Kleurintensiteit Color Mask , Kleurenmasker Color Mask [Interactive] , Kleurenmasker [Interactief] Color Median , Kleurmediaan Color Metric , Kleur Metrisch Color Midtones , Kleur Midtonen Color Mode , Kleurmodus Color Model , Kleurenmodel Color Negative , Kleurnegatief Color on White , Kleur op Wit Color Overall Effect , Kleuren Algemeen Effect Color Presets , Vooraf ingestelde kleuren Color Quantization , Kleurkwantisering Color Rendering , Kleurweergave Color Shading (%) , Kleurschakering (%) Color Shadows , Kleur Schaduwen Color Smoothness , Kleur gladheid Color Space , Kleurruimte Color Spots + Extrapolated Colors + Lineart , Kleurvlekken + geëxtrapoleerde kleuren + Lineart Color Spots + Lineart , Kleurvlekken + Lineart Color Strength , Kleursterkte Color Temperature , Kleurtemperatuur Color Tolerance , Kleurentolerantie Color Variation [Random -1] , Kleurvariatie [Willekeurig -1] Colored Geometry , Gekleurde Geometrie Colored Grain , Gekleurde korrel Colored Lineart , Gekleurde Lineart Colored on Black , Gekleurd op zwart Colored on Transparent , Gekleurd op Transparant Colored Outline , Gekleurde contouren Colored Pencils , Gekleurde potloden Colored Regions , Gekleurde regio's Colorful , Kleurrijke Colorful 0209 , Kleurrijk 0209 Colorful Blobs , Kleurrijke Blobs Coloring , Kleuren Colorize [Interactive] , Colorize [Interactief] Colorize [Photographs] , Colorize [Foto's] Colorize [with Colormap] , Colorize [met Colormap] Colorize Lineart [Propagation] , Colorize Lineart [Voortplanting] Colorize Mode , Kleurrijke modus Colorized Image (1 Layer) , Gekleurd beeld (1 laag) Colors , Kleuren Colors A , Kleuren A Colors B , Kleuren B Colors Only , Alleen kleuren Colors Only (1 Layer) , Alleen kleuren (1 laag) Colors to Layers , Kleuren naar lagen Colorspace , Kleurruimte Colour , Kleur Colour Channels , Kleurenkanalen Colour Model , Kleurenmodel Colour Smoothing , Kleur gladstrijken Colour Space Mode , Kleurruimte modus Column by Column , Kolom voor kolom Comic Style , Stripstijl Comix Colors , Comix Kleuren Components , Onderdelen Composed Layers , Samengestelde lagen Compress Highlights , Comprimeer Hoogtepunten Compression Blur , Compressie Wazigheid Compression Filter , Compressiefilter Computation Mode , Computationele wijze Cone , Kegel Conformal Maps , Conformiteitskaarten Connectivity , Connectiviteit Connectors Centering , Verbindingselementen Centreren Connectors Variability , Aansluitingen Variabiliteit Constrain Image Size , Beperk het beeldformaat Constrain Values , Beperkingswaarden Constrained Sharpen , Beperkt verscherpen Constraint Radius , Beperkingsstraal Continuous Droste , Doorlopende Droste Contour Coherence , Contourcoherentie Contour Detection (%) , Contourdetectie (%) Contour Normalization , Contour Normalisatie Contour Precision , Contournauwkeurigheid Contour Threshold , Contourdrempel Contour Threshold (%) , Contourdrempel (%) Contours , Contouren Contours + Flocon/Snowflake , Contouren + Flocon/Snowflake Contours Recursion , Contouren Recursie Contrast Smoothness , Contrast Gladheid Contrast Swiss Mask , Contrast Zwitsers Masker Contrast with Highlights Protection , Contrast met Highlights Protection Contrasty Afternoon , Contrasterende middag Contrasty Green , Contrastijlgroen Contributors , Medewerkers Control Point 1 , Controlepunt 1 Control Point 2 , Controlepunt 2 Control Point 3 , Controlepunt 3 Control Point 4 , Controlepunt 4 Control Point 5 , Controlepunt 5 Control Point 6 , Controlepunt 6 Convolve , Bekijk Cool (256) , Koel (256) Cool / Warm , Koel / Warm Copper , Koper Corner Brightness , Hoekhelderheid Correlated Channels , Gecorreleerde kanalen Counter Clockwise , Tegen de klok in Course 4 , Cursus 4 Cracks , Scheuren Crease , Vouw Creative Pack (33) , Creatief pakket (33) Crisp Romance , Knapperige Romantiek Crisp Warm , Knapperig warm Criterion , Criterium Crop , Gewas Crop (%) , Gewas (%) Cross Process CP 130 , Kruisproces CP 130 Cross Process CP 14 , Kruisproces CP 14 Cross Process CP 15 , Kruisproces CP 15 Cross Process CP 16 , Kruisproces CP 16 Cross Process CP 18 , Kruisproces CP 18 Cross Process CP 3 , Kruisproces CP 3 Cross Process CP 4 , Kruisproces CP 4 Cross Process CP 6 , Kruisproces CP 6 Cross-Hatch Amount , Cross-Hatch bedrag Crossed , Gekruist Crosses 1 , Kruisen 1 Crosses 2 , Kruisen 2 Crosshair , Dwarsdraad CRT Sub-Pixels , CRT-sub-pixels Crystal , Kristal Crystal Background , Kristallen achtergrond Cube , Kubus Cube (256) , Kubus (256) Cubic , Kubieke Cubicle 99 , Kubus 99 Cubism , Kubisme Cubism on Color Abstraction , Kubisme op Kleur Abstractie Cup , Beker Cupid , Cupido Curvature , Kromming Curvature Shadow , Kromming Schaduw Curve Amount , Curve Bedrag Curve Angle , Kromme hoek Curve Length , Kromme lengte Curved , Gebogen Curved Stroke , Gebogen slag Curves , Curven Curves Previously Defined , Curven Eerder gedefinieerde Custom , Aangepaste Custom Code [Global] , Aangepaste code [Globaal] Custom Code [Local] , Aangepaste code [Lokaal] Custom Correction Map , Aangepaste Correctie Kaart Custom Depth Correction , Aangepaste dieptecorrectie Custom Depth Maps Stream , Aangepaste Dieptekaarten Stroom Custom Dictionary , Aangepast Woordenboek Custom Filter Code , Aangepaste filtercode Custom Formula , Aangepaste formule Custom Kernel , Aangepaste Kernel Custom Layers , Aangepaste lagen Custom Layout , Aangepaste indeling Custom Style (Bottom Layer) , Aangepaste stijl (bodemlaag) Custom Style (Top Layer) , Aangepaste stijl (bovenste laag) Custom Transform , Aangepaste Transformatie Customize CLUT , CLUT aanpassen Cut , Knip Cut & Normalize , Snijden & Normaliseren Cut High , Snij hoog Cut Low , Laag snijden Cutout , Uitsnede Cyan , Cyaan Cyan Factor , Cyaan Factor Cyan Smoothness , Cyaan Gladheid Cycle Layers , Cycluslagen Cycles , Fietsen Cylinder , Cilinder D and O 1 , D en O 1 Damping per Octave , Demping per octaaf Dark Motive , Donkere motief Dark Blues in Sunlight , Donkerblauw in het zonlicht Dark Boost , Donkere Boost Dark Color , Donkere kleur Dark Edges , Donkere randen Dark Green 02 , Donkergroen 02 Dark Green 1 , Donkergroen 1 Dark Grey , Donkergrijs Dark Length , Donkere lengte Dark Motive , Donkere motief Dark Pixels , Donkere Pixels Dark Place 01 , Donkere plaats 01 Dark Screen , Donker scherm Dark Sky , Donkere hemel Dark Walls , Donkere muren Darken , Verduisteren Darker , Donkerder Darkness , Duisternis Darkness Level , Duisternisniveau Date 39 , Datum 39 Day for Night , Dag voor de nacht Daylight Scene , Daglichtscène Debug Font Size , Debug lettergrootte Decompose , Ontbind Decompose Channels , Kanalen ontbinden Decoration , Decoratie Decreasing , Afnemende Deep , Diepgaand Deep Blue , Diep Blauw Deep Dark Warm , Diep donker warm Deep High Contrast , Diepgaand hoog contrast Deep Teal Fade , Diepe Teal Fade Deep Warm Fade , Diepwarme Fade Default , Standaard Defects Contrast , Defecten Contrast Defects Density , Defecten Dichtheid Defects Size , Defecten Grootte Defects Smoothness , Defecten Gladheid Deform , Vervorm Delaunay: Portrait De Metzinger , Delaunay: Portret De Metzinger Delaunay: Windows Open Simultaneously , Delaunay: Vensters gelijktijdig openen Delete Layer Source , Lagenbron verwijderen Delicatessen , Delicatessenzaken Density , Dichtheid Density (%) , Dichtheid (%) Depth , Diepte Depth Fade In Frames , Diepte Fade In Frames Depth Fade Out Frames , Diepte Fade Out Frames Depth Field Control , Diepteveldregeling Depth Map , Dieptekaart Depth Map Construction , Dieptekaart bouw Depth Map Only , Alleen de dieptekaart Depth Map Reconstruction , Dieptekaart Reconstructie Depth Maps Only , Alleen dieptekaarten Depth-Of-Field Type , Diepte-veld type Desaturate , Desaturaat Desaturate (%) , Desaturaat (%) Desaturate Norm , Desaturaat Norm Descent Method , Afdalingsmethode Descreen , Scherm Desert Gold 37 , Woestijn Goud 37 Destination (%) , Bestemming (%) Destination X-Tiles , Bestemming X-Tegels Destination Y-Tiles , Bestemming Y-Tegels Detail Level , Detailniveau Detail Reconstruction Detection , Detail Reconstructie Detectie Detail Reconstruction Smoothness , Detail Reconstructie Gladheid Detail Reconstruction Strength , Detail Reconstructie Sterkte Detail Reconstruction Style , Detail Reconstructie Stijl Detail Scale , Detailschaal Detail Strength , Detailsterkte Details Amount , Details Bedrag Details Equalizer , Details Egalisator Details Scale , Details Schaal Details Smoothness , Details Gladheid Details Strength (%) , Details Sterkte (%) Detect Skin , Huid detecteren Deuteranomaly , Deuteranomalie Deuteranopia , Deuteranopie Deviation , Afwijking Diamond , Diamant Diamond (Inv.) , Diamant (Inv.) Diamonds , Diamanten Diamonds (Outline) , Diamanten (overzicht) Dices , Dobbelstenen Dices with Colored Numbers , Dobbelstenen met gekleurde cijfers Dices with Colored Sides , Dobbelstenen met gekleurde kanten Difference , Verschil Difference Mixing , Verschil Mengen Difference of Gaussians , Verschil van Gaussers Different Axis , Verschillende assen Diffuse (%) , Diffuus (%) Diffuse Shadow , Diffuse Schaduw Diffusion , Verspreiding Diffusion Tensors , Verspreidingstensoren Diffusivity , Diffusiviteit Digits , Cijfers Dilatation , Dilatatie Dilation , Dilatatie Dilation - Original , Dilatatie - Origineel Dilation / Erosion , Dilatatie / Erosie Dimension , Dimensie Dimension [Diff] , Dimensie [Diff] Dimension A , Dimensie A Dimensions (%) , Afmetingen (%) Dimensions Pixels , Afmetingen Pixels Dipole: 1/(4*z^2-1) , Dipool: 1/(4*z^2-1) Direct , Directe Direction , Richting Directions 23 , Routebeschrijving 23 Dirty , Vuile Disable , Schakel uit. Disabled , Uitgeschakeld Discard Contour Guides , Contourgidsen weggooien Discard Transparency , Transparantie weggooien Display , Toon Display Blob Controls , Blob-besturingselementen weergeven Display Color Axes , Weergavekleur Assen Display Contours , Toon contouren Display Coordinates , Coördinaten weergeven Display Coordinates on Preview Window , Coördinaten weergeven op voorbeeldvenster Display Debug Info on Preview , Debug-informatie weergeven op voorvertoning Distance , Afstand Distance (Fast) , Afstand (snel) Distance Transform , Afstandstransformatie Distort Lens , Vervormingslens Distortion Factor , Vervormingsfactor Distortion Surface Angle , Vervorming Hoek van het oppervlak Distortion Surface Position , Vervorming Positie van het oppervlak Disturbance Scale-By-Factor , Verstoring Schaal-voor-Factor Disturbance X , Storing X Disturbance Y , Verstoring Y Dither Output , Dither Uitgang Divide , Verdeel Do Not Flatten Transparency , Niet afvlakken Transparantie Dodge and Burn , Ontwijken en verbranden Dodge Strength , Ontwijkende kracht DOF Analyzer , DOF-analyzer Dog , Hond Don't Sort , Niet sorteren DoNothing , Niets doen Dot Size , Puntgrootte Dots , Stippen Download External Data , Externe gegevens downloaden Dragon Curve , Drakenkromme Drawing Mode , Tekenmodus Drawn Montage , Getekend Montage Dream , Droom Dream 1 , Droom 1 Dream 85 , Droom 85 Dream Smoothing , Droom Gladmaken Drop Shadow , Valschaduw Drop Water , Druppel water Duck , Eend Duplicate Bottom , Duplicaatbodem Duplicate Horizontal , Duplicaat Horizontaal Duplicate Left , Duplicaat links Duplicate Right , Duplicaatrecht Duplicate Top , Duplicaat Top Duplicate Vertical , Duplicaat Verticaal Duration , Duur Dynamic Range Increase , Dynamisch bereik vergroten Eagle , Adelaar Earth , Aarde Earth Tone Boost , Aarde Tone Boost Easy Skin Retouch , Gemakkelijke Huidretouche Edge , Rand Edge Antialiasing , Rand Anti-aliasing Edge Attenuation , Randverzwakking Edge Behavior X , Randgedrag X Edge Behavior Y , Randgedrag Y Edge Detect Includes Chroma , Randdetectie omvat Chroma Edge Exponent , Randexponent Edge Fidelity , Randtrouw Edge Influence , Randinvloed Edge Mask , Randmasker Edge Sensitivity , Randgevoeligheid Edge Shade , Randschaduw Edge Simplicity , Rand Eenvoud Edge Smoothness , Gladheid van de rand Edge Thickness , Randdikte Edge Threshold , Randdrempel Edge Threshold (%) , Randdrempel (%) Edge-Oriented , Randgericht Edges , Randen Edges (%) , Randen (%) Edges [Animated] , Randen [Geanimeerd] Edges Offsets , Randcompensatie Edges on Fire , Randen in brand Edges-0.5 (beware: Memory-Consuming!) , Randen-0.5 (let op: Geheugen-gebruik!) Edges-1 (beware: Memory-Consuming!) , Randen-1 (let op: Geheugen-gebruik!) Edges-2 (beware: Memory-Consuming!) , Randen-2 (let op: Geheugen-gebruik!) Effect Strength , Effect Sterkte Effect X-Axis Scaling , Effect X-Axis Schaalverdeling Effect Y-Axis Scaling , Effect Y-Axis Schaalverdeling Eight Layers , Acht lagen Eight Threads , Acht Draden Elegance 38 , Elegantie 38 Elephant , Olifant Elevation , Verhoging Elevation (%) , Hoogte (%) Ellipse Painting , Ellipsschilderen Ellipse Ratio , Ellipsverhouding Ellipsionism , Ellipsionisme Ellipsionism Opacity , Ellipsionisme Opaciteit Ellipsoid , Ellipsoïde Enable Antialiasing , Antialiasing mogelijk maken Enable Interpolated Motion , Geïnterpoleerde beweging mogelijk maken Enable Morphology , Morfologie inschakelen Enable Paintstroke , Schakel de verfstreek in Enable Segmentation , Segmentatie mogelijk maken Enchanted , Betoverd End Color , Eindkleur End Frame Number , Einde Kadernummer End of Mid-Tones , Einde van de middentonen End Point Connectivity , Eindpunt Connectiviteit End Point Rate (%) , Eindpuntpercentage (%) Ending Angle , Eindhoek Ending Color , Beëindiging van de kleur Ending Feathering , Einde van de bevedering Ending Point (%) , Eindpunt (%) Ending Scale (%) , Eindschaal (%) Ending Value , Eindwaarde Ending X-Centering , Beëindigen van X-Centering Ending Y-Centering , Beëindigen van Y-Centering Engrave , Graveer Enhance Detail , Verbeteren van de details Enhance Details , Verbeter de details Equalization , Egalisatie Equalization (%) , Egalisatie (%) Equalize , Egaliseer Equalize and Normalize , Egaliseer en normaliseer Equalize at Each Step , Egaliseer bij elke stap Equalize HSI-HSL-HSV , Egaliseer HSI-HSL-HSV Equalize HSV , Gelijkstellen van HSV Equalize Light , Egaliseer het licht Equalize Local Histograms , Lokale Histogrammen egaliseren Equalize Shadow , Schaduw egaliseren Equation Plot [Parametric] , Vergelijkingsveld [Parametrisch] Equation Plot [Y=f(X)] , Vergelijkingspunt [Y=f(X)] Equirectangular to Nadir-Zenith , Equirectangular naar Nadir-Zenith Erosion , Erosie Erosion / Dilation , Erosie / Dilatatie Etch Tones , Ets Tonen Eterna for Flog , Eterna voor Flog Euclidean , Euclidisch Euclidean - Polar , Euclidisch - Polair Exclusion , Uitsluiting Expand , Uitbreiden Expand Background Reconstruction , Uitbreiden Achtergrond Reconstructie Expand Shadows , Schaduwen uitbreiden Expand Size , Grootte uitbreiden Expanding Mirrors , Uitbreiding van de spiegels Expired (fade) , Verlopen (vervagen) Expired (polaroid) , Verlopen (polaroid) Expired 69 , Verlopen 69 Exponent (Imaginary) , Exponent (denkbeeldig) Exponent (Real) , Exponent (Echt) Exponential , Exponentieel Export RGB-565 File , RGB-565-bestand exporteren Exposure , Blootstelling Expression , Uitdrukking Extend 1px , Verlengen 1px External Transparency , Externe transparantie Extra Smooth , Extra Gladjes Extract Foreground [Interactive] , Extract Voorgrond [Interactief] Extract Objects , Voorwerpen uitpakken Extrapolate Color Spots on Transparent Top Layer , Extrapoleer Kleurvlekken op Transparante Bovenlaag Extrapolate Colors As , Extrapoleer Kleuren als Extrapolated Colors + Lineart , Geëxtrapoleerde kleuren + Lineart Extreme , Extreem Fade , Vervagen Fade End , Verdwijnen Fade Layers , Fade Lagen Fade to Green , Verdwijnen naar groen Faded , Vervaagd Faded (alt) , Vervaagd (alt) Faded (analog) , Vervaagd (analoog) Faded (extreme) , Vervaagd (extreem) Faded (vivid) , Vervaagd (levendig) Faded 47 , Vervaagd 47 Faded Green , Vervaagd groen Faded Look , Vervaagde look Faded Print , Vervaagde afdrukken Faded Retro 01 , Vervaagd Retro 01 Faded Retro 02 , Vervaagd Retro 02 Fading , Vervaagt Fading Shape , Vervaagde vorm Fall Colors , Valkleuren Far Point Deviation , Verre punt afwijking Fast , Snelle Fast (Approx.) , Snel (Ca. ) Fast (Low Precision) Preview , Snelle (Lage Precisie) Preview Fast Approximation , Snelle benadering Fast Blend , Snelle mengeling Fast Blend Preview , Snelle Mengsel Voorbeeld Fast Recovery , Snelle recuperatie Fast Resize , Snel aanpassen Faux Infrared , Faux Infrarood Feathering , Vederzetting Feature Analyzer Smoothness , Eigenschap Analyzer Gladheid Felt Pen , Viltstift FFT Preview , FFT-voorvertoning Fibers , Vezels Fibers Amplitude , Vezels Amplitude Fibers Smoothness , Vezels Gladheid Fibrousness , Vezeligheid Fidelity Smoothness (Coarsest) , Trouw Gladheid (grofste) Fidelity Smoothness (Finest) , Trouw Gladheid (Fijnste) Fidelity to Target (Coarsest) , Trouw aan het doelwit (grofste) Fidelity to Target (Finest) , Trouw aan het doel (mooiste) Filename , Bestandsnaam Fill Holes , Gaten vullen Fill Holes % , Gaten vullen % Fill Transparent Holes , Vul Transparante Gaten Filled , Gevuld Filled Circles , Gevulde cirkels Filling , Het vullen van Film Print 01 , Filmdruk 01 Film Print 02 , Filmdruk 02 Filmic , Filmische Filter Design , Filterontwerp Final Image , Eindbeeld Fine , Prima Fine 2 , Fijn 2 Fine Details Smoothness , Fijne details Gladheid Fine Details Threshold , Fijne details Drempel Fine Noise , Fijn geluid Fine Scale , Fijne Schaal Finest (slower) , Fijnste (langzamer) Finger Paint , Vingerverf Finger Size , Vingergrootte Fire Effect , Vuureffect Fireworks , Vuurwerk First , Eerste First Color , Eerste kleur First Frame , Eerste frame First Offset , Eerste compensatie First Radius , Eerste straal First Size , Eerste Maat Fish-Eye , Visoog Fish-Eye Effect , Vis-oog effect Fitting Function , Passende functie Five Layers , Vijf lagen Flag , Vlag Flag (256) , Vlag (256) Flat , Vlakke Flat 30 , Vlakke 30 Flat Color , Vlakke kleur Flat Regions Removal , Platte gebieden Verwijdering Flatness , Vlakheid Flip & Rotate Blocs , Blokken omdraaien Flip Left / Right , Flip links / rechts Flip Left/Right , Links/rechtsomklappen Flip The Pattern , Flip het patroon Flip Tolerance , Flip-tolerantie Flower , Bloem Foggy Night , Mistige nacht Folder Name , Mapnaam Font Colors , Lettertype Kleuren Font Height (px) , Letterhoogte (px) Force Gray , Grijze kracht Force Re-Download from Scratch , Force Re-Download van Scratch Force Tiles to Have Same Size , Dwingen Tegels om dezelfde grootte te hebben Force Transparency , Transparantie dwingen Foreground Color , Voorgrondkleur Form , Formulier Formula , Formule Forward , Doorsturen Forward Horizontal , Horizontaal vooruit Forward Horizontal , Horizontaal vooruit Forward Vertical , Voorwaarts Verticaal Four Layers , Vier lagen Four Threads , Vier draden Fourier Analysis , Fourieranalyse Fourier Transform , Fourier Transformatie Fourier Watermark , Fourier Watermerk Fractal Noise , Fractaal geluid Fractal Points , Fractische punten Fractal Set , Fractaire set Fractalize , Fractaliseer Fractured Clouds , Gebroken wolken Fragment Blur , Fragment vervagen Frame [Blur] , Frame [Wazig] Frame [Cube] , Frame [Kubus] Frame [Mirror] , Frame [Spiegel] Frame [Painting] , Frame [Schilderij] Frame [Pattern] , Frame [Patroon] Frame [Regular] , Frame [Regelmatig] Frame [Round] , Frame [Rond] Frame [Smooth] , Frame [Glad] Frame as a New Layer , Frame als nieuwe laag Frame Color , Kleur van het frame Frame Files Format , Frame Bestanden Formaat Frame Format , Frameformaat Frame Size , Framegrootte Frame Skip , Frame Overslaan Frame Type , Frametype Frame Width , Frame Breedte Frames Offset , Frames Compensatie Freaky B&W , Griezelig B&W Freaky Details , Griezelige details Freeze , Bevriezen French Comedy , Franse komedie Frequency , Frequentie Frequency (%) , Frequentie (%) Frequency Analyzer , Frequentie-analyzer Frequency Range , Frequentiebereik Freqy Pattern , Freqy-patroon Friends Hall of Fame , Vrienden Hall of Fame From Input , Van Invoer From Reference Color , Van Referentie Kleur Frosted , Bevroren Frosted Beach Picnic , Frosted Strand Picknick Fruits , Vruchten Fuji FP-100c -- , Fuji FP-100c - Fuji FP-100c Cool -- , Fuji FP-100c Cool... Fuji FP-100c Negative , Fuji FP-100c Negatief Fuji FP-100c Negative + , Fuji FP-100c Negatief + Fuji FP-100c Negative ++ , Fuji FP-100c Negatief ++ Fuji FP-100c Negative +++ , Fuji FP-100c Negatief +++ Fuji FP-100c Negative ++a , Fuji FP-100c Negatief ++a Fuji FP-100c Negative - , Fuji FP-100c Negatief - Fuji FP-100c Negative -- , Fuji FP-100c Negatief - Fuji FP-3000b -- , Fuji FP-3000b - Fuji FP-3000b Negative , Fuji FP-3000b Negatief Fuji FP-3000b Negative + , Fuji FP-3000b Negatief + Fuji FP-3000b Negative ++ , Fuji FP-3000b Negatief ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Negatief +++ Fuji FP-3000b Negative - , Fuji FP-3000b Negatief - Fuji FP-3000b Negative -- , Fuji FP-3000b Negatief - Fuji FP-3000b Negative Early , Fuji FP-3000b Negatief Vroeg Full , Volledig Full (Allows Multi-Layers) , Vol (maakt Multi-Layers mogelijk) Full (Slower) , Vol (langzamer) Full Bottom/top , Volledige bodem/top Full Colors , Volle kleuren Full HD Frame Packing , Full HD Frame Verpakking Full Layer Stack -Slow!- , Volle laagstapel -Slow! - Full Side by Side Keep Uncompressed , Volledig zij aan zij houden Ongecomprimeerd Full Side by Side Keep Width , Volledige zij-aan-zij-breedte houden Full Side by Uncompressed , Volledige Zijde door Ongecomprimeerd Fusion 88 , Fusie 88 Futuristic Bleak 1 , Futuristisch Guur 1 Futuristic Bleak 2 , Futuristisch Guur 2 Futuristic Bleak 3 , Futuristisch Guur 3 Futuristic Bleak 4 , Futuristisch Guur 4 G/M Smoothness , G/M Gladheid Gain , Verkrijg Games & Demos , Spelletjes & demo's Gamma Balance , Gammabalans Gamma Compensation , Gamma-compensatie Gamma Equalizer , Gamma-equalizer Gaussian , Gaussische Gear , Versnelling Generate Random-Colors Layer , Genereer willekeurige kleurenlaag Generic Fuji Astia 100 , Generiek Fuji Astia 100 Generic Fuji Provia 100 , Generieke Fuji Provia 100 Generic Fuji Velvia 100 , Generiek Fuji Velvia 100 Generic Kodachrome 64 , Generieke Kodachrome 64 Generic Kodak Ektachrome 100 VS , Generieke Kodak Ektachrome 100 VS Generic Skin Structure , Algemene huidstructuur Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Zachte modus (overschrijft Minimale helderheid en Minimun-rood: Blauwe verhouding) Geometry , Geometrie Glamour Glow , Glamour Gloed Global , Wereldwijd Global Mapping , Globale kartering Glow , Gloed Gmicky & Wilber (by Mahvin) , Gmicky & Wilber (door Mahvin) Gmicky (by Deevad) , Gmicky (door Deevad) Gmicky (by Mahvin) , Gmicky (door Mahvin) Going for a Walk , Gaan wandelen Gold , Goud Golden , Gouden Golden (bright) , Goud (helder) Golden (fade) , Goud (vervagen) Golden (mono) , Goud (mono) Golden (vibrant) , Goud (levendig) Golden Gate , Gouden Poort Golden Night Softner 43 , Gouden Nacht Softner 43 Golden Sony 37 , Gouden Sony 37 GoldFX - Bright Spring Breeze , GoldFX - Heldere lentebries GoldFX - Bright Summer Heat , GoldFX - Heldere zomerhitte GoldFX - Hot Summer Heat , GoldFX - Hete Zomerhitte GoldFX - Perfect Sunset 01min , GoldFX - Perfecte zonsondergang 01min GoldFX - Perfect Sunset 05min , GoldFX - Perfecte zonsondergang 05min GoldFX - Perfect Sunset 10min , GoldFX - Perfecte zonsondergang 10min GoldFX - Spring Breeze , GoldFX - Voorjaarswind GoldFX - Summer Heat , GoldFX - Zomerse hitte Good Morning , Goedemorgen GradienNormLinearity , GradienNormLineariteit Gradient , Gradiënt Gradient [Corners] , Gradiënt [Hoeken] Gradient [Custom Shape] , Gradiënt [Aangepaste vorm] Gradient [from Line] , Gradiënt [van lijn] Gradient [Linear] , Gradiënt [Lineair] Gradient [Radial] , Gradiënt [Radiaal] Gradient [Random] , Gradiënt [Willekeurig] Gradient Norm , Gradiënt Norm Gradient Preset , Vooraf ingestelde hellingshoek Gradient RGB , Gradiënt RGB Gradient Smoothness , Gradiënt Gladheid Gradient Values , Gradiëntwaarden Grain , Korrel Grain (Highlights) , Graan (Highlights) Grain (Midtones) , Graan (Midtones) Grain (Shadows) , Graan (Schaduwen) Grain Extract , Graanextract Grain Merge , Graan Samenvoegen Grain Only , Alleen graan Grain Scale , Graanschaal Grain Tone Fading , Korreltoonvervaging Grain Type , Type korrel Grainextract , Graanextract Grainmerge , Graanvernieuwing Granularity , Granulariteit Graphic Boost , Grafische Boost Graphic Colours , Grafische kleuren Graphic Novel , Grafische roman Graphix Colors , Graphix Kleuren Grayscale , Grijstinten Greece , Griekenland Green , Groen Green 15 , Groen 15 Green 2025 , Groen 2025 Green Action , Groene actie Green Afternoon , Groene middag Green Blues , Groenblauw Green Conflict , Groen conflict Green Day 01 , Groene dag 01 Green Day 02 , Groene dag 02 Green Factor , Groene factor Green G09 , Groen G09 Green Indoor , Groen binnenshuis Green Level , Groen niveau Green Light , Groen licht Green Mono , Groene Mono Green Rotations , Groene rotaties Green Shift , Groene Verschuiving Green Smoothness , Groene Gladheid Green Wavelength , Groene Golflengte Green Yellow , Groen Geel Green-Blue , Groenblauw Green-Red , Groen-rood Greenish Contrasty , Groenachtige contradictie Greenish Fade , Groenige Fade Greenish Fade 1 , Groene Fade 1 Grey , Grijs Greyscale , Grijswaarden Grid , Rooster Grid [Cartesian] , Rooster [Cartesiaans] Grid [Hexagonal] , Raster [Hexagonaal] Grid [Triangular] , Rooster [Driehoekig] Grid Divisions , Rasterafdelingen Grid Smoothing , Rasterafvlakking Grid Width , Rasterbreedte Grow Alpha , Groeien Alpha Guide As , Gids Als Guide Mix , Gidsmix Guide Recovery , Gids voor herstel Gum Leaf , Kauwgomblad Gyroid , Gyroïde Hackmanite , Hackmaniet Hair Locks , Haarsloten HaldCLUT Filename , HaldCLUT Filenaam Half Bottom/top , Halve bodem/top Half Side by Side , Halve zijde door zijde Halftone , Halftoon Halftone Shapes , Halftoonvormen Hanoi Tower , Hanoi-toren Happyness 133 , Geluk 133 Hard Dark , Hard donker Hard Light , Hard licht Hard Mix , Harde Mix Hard Sketch , Harde Schets Hard Teal Orange , Hard Teal Oranje Harsh Day , Zware dag Harsh Sunset , Harde zonsondergang HDR Effect (Tone Map) , HDR-effect (Toonkaart) Heart , Hart Hearts , Harten Hearts (Outline) , Harten (Overzicht) Hedcut (Experimental) , Hedcut (Experimenteel) Height , Hoogte Height (%) , Hoogte (%) Herderite , Herderiet Hexagonal , Zeshoekig Hiddenite , Verborgenheid High , Hoog High (Slower) , Hoog (langzamer) High Frequency , Hoge frequentie High Frequency Layer , Hoogfrequente laag High Key , Hoge sleutel High Pass , Hoge Pas High Quality , Hoge kwaliteit High Scale , Hoge Schaal High Speed , Hoge snelheid High Value , Hoge waarde Higher Mask Threshold (%) , Hogere masker drempel (%) Highlight , Markeer Highlight (%) , Markeer (%) Highlight Bloom , Markeer Bloom Highlights Abstraction , Hoogtepunten Abstractie Highlights Brightness , Highlights Helderheid Highlights Color Intensity , Highlights Kleurintensiteit Highlights Hue , Highlights Tint Highlights Lightness , Highlights Lichtheid Highlights Protection , Hoogtepunten Bescherming Highlights Selection , Hoogtepunten Selectie Highlights Threshold , Hoogtepunten Drempel Highlights Zone , Hoogtepunten Zone Histogram Analysis , Histogramanalyse Histogram Transfer , Histogram overdracht Hokusai: The Great Wave , Hokusai: de grote golf Homogeneity , Homogeniteit Hong Kong , Hongkong Hope Poster , Hoop Affiche Horisontal Length , Horizontale lengte Horizon Leveling (deg) , Horizontale nivellering (deg) Horizontal , Horizontale Horizontal (%) , Horizontaal (%) Horizontal Amount , Horizontaal bedrag Horizontal Array , Horizontale Serie Horizontal Blur , Horizontale vervaging Horizontal Length , Horizontale lengte Horizontal Size (%) , Horizontale grootte (%) Horizontal Stripes , Horizontale strepen Horizontal Tiles , Horizontale tegels Horizontal Warp Only , Alleen horizontale kromming Horror Blue , Horrorblauw Hot , Hete Hot (256) , Warm (256) Hough Transform , Hough Transformeren House , Huis Householder , Huishouder HSI [all] , HSI [alle] HSI [Intensity] , HSI [Intensiteit] HSL [all] , HSL [alle] HSL [Lightness] , HSL [Lichtheid] HSL Adjustment , HSL-aanpassing HSV [all] , HSV [alle] HSV [Saturation] , HSV [Verzadiging] HSV [Value] , HSV [Waarde] HSV Select , HSV kiezen Hue , Tint Hue (%) , Tint (%) Hue Band , Tint band Hue Factor , Tintfactor Hue Lighten-Darken , Tint Verbleken-Donkeren Hue Max (%) , Tint maximaal (%) Hue Min (%) , Tint Min (%) Hue Offset , Tint compensatie Hue Range , Tintwaaier Hue Shift , Tint verschuiving Hue Smoothness , Tint Gladheid Human 2 , Menselijk 2 Human 1 , Menselijk 1 Human 2 , Menselijk 2 Hybrid Median - Medium Speed Softest Output , Hybride Mediaan - Gemiddelde snelheid Softeste Uitgang Hypnosis , Hypnose Identity , Identiteit Ignore , Negeer Ignore Current Aspect , Negeer het huidige aspect Illuminate 2D Shape , Verlicht 2D-vorm Illumination , Verlichting Illustration Look , Illustratie Kijk Image , Afbeelding Image + Background , Afbeelding + Achtergrond Image + Colors (2 Layers) , Afbeelding + Kleuren (2 lagen) Image + Colors (Multi-Layers) , Afbeelding + Kleuren (Multi-Layers) Image Contour Dimensions , Afmetingen van de beeldcontouren Image Smoothness , Afbeelding Gladheid Image to Grab Color from (.Png) , Afbeelding om kleur te krijgen van (.Png) Image Weight , Beeldgewicht Import Data , Gegevens importeren Import RGB-565 File , RGB-565-bestand importeren Impulses 5x5 , Impulsen 5x5 Impulses 7x7 , Impulsen 7x7 Impulses 9x9 , Impulsen 9x9 Include Opacity Layer , Inclusief Opacity Layer Increasing , Toename van Indoor Blue , Binnenshuis Blauw Industrial 33 , Industrieel 33 Influence of Color Samples (%) , Invloed van kleurmonsters (%) Information , Informatie Init. Resolution , Init. Resolutie Init. With High Gradients Only , Init. Met alleen hoge gradiënten Initial Density , Oorspronkelijke Dichtheid Initialization , Initialisatie Ink Wash , Inkt Wassen Inner , Innerlijke Inner Fading , Innerlijke verbleking Inner Length , Binnenlengte Inner Radius , Binnenstraal Inner Radius (%) , Binnenstraal (%) Inner Shade , Binnenste Schaduw Inpaint [Holes] , Schilderij [Gaten] Inpaint [Morphological] , Inpaint [Morfologisch] Inpaint [Multi-Scale] , Schilderij [Multi-Schaal] Inpaint [Transport-Diffusion] , Inpaint [Transport-Diffusie] Input , Invoer Input Folder , Invoermap Input Frame Files Name , Naam invoerkaderbestanden Input Guide Color , Kleur van de invoergids Input Layers , Invoerlagen Input Transparency , Input Transparantie Input Type , Type invoer Insert New CLUT Layer , Nieuwe CLUT-laag invoegen Inside , Binnenin Inside Color , Kleur van de binnenkant Instant [Consumer] (54) , Onmiddellijk [consument] (54) Instant [Pro] (68) , Onmiddellijk [Pro] (68) Intensity , Intensiteit Intensity of Purple Fringe , Intensiteit van paarse franje Inter-Frames , Interframes Interlace Horizontal , Horizontale tussenruimte Interlace Vertical , Verticaal in elkaar schuiven Interpolate , Interpoleer Interpolation , Interpolatie Interpolation Type , Interpolatie Type Inverse , Omgekeerd Inverse Depth Map , Inverse Diepte Kaart Inverse Radius , Omgekeerde straal Inverse Transform , Omgekeerde transformatie Inversions , Inversies Invert Background / Foreground , Achtergrond omkeren / Voorgrond Invert Blur , Omkeren Wazigheid Invert Canvas Colors , Omkeren van Canvas Kleuren Invert Colors , Kleuren omkeren Invert Image Colors , Beeldomkering Kleuren Invert Luminance , Omkering van de helderheid Invert Mask , Omkeermasker Inward , Binnenwaarts Isophotes , Isofoten Isotropic , Isotroop Iteration , Iteratie Iterations , Iteraties Japanese Maple Leaf , Japans esdoornblad Jet (256) , Straal (256) JPEG Artefacts , JPEG-artefacten JPEG Smooth , JPEG Glad Just Peachy , Gewoon Peachy Kaleidoscope [Blended] , Caleidoscoop [Gemengd] Kaleidoscope [Polar] , Caleidoscoop [Polar] Kaleidoscope [Symmetry] , Caleidoscoop [Symmetrie] Kandinsky: Squares with Concentric Circles , Kandinsky: Pleinen met concentrische cirkels Kandinsky: Yellow-Red-Blue , Kandinsky: Geel-rood-blauw Keep , Houd Keep Aspect Ratio , Houd de hoogte-breedteverhouding Keep Base Layer as Input Background , Houd de basislaag als invoerachtergrond Keep Borders Square , Houd Grenzen vierkant Keep Color Channels , Houd de kleurkanalen Keep Colors , Houd Kleuren Keep Detail , Detail bewaren Keep Detail Layer Separate , Houd de detaillaag apart Keep Iterations as Different Layers , Houd Iteraties als Verschillende Lagen Keep Layers Separate , Lagen apart houden Keep Original Image Size , Bewaar het originele beeldformaat Keep Original Layer , Bewaar de originele laag Keep Tiles Square , Houd Tegels vierkant Keep Transparency in Output , Transparantie in de uitvoer behouden Kernel Multiplier , Kernelvermenigvuldiger Kernel Type , Kerneltype Key Factor , Belangrijke factor Key Frame Rate , Belangrijkste frametarief Key Shift , Sleutelverschuiving Key Smoothness , Sleutel Smoothness Keypoint Influence (%) , Kernpunt Invloed (%) Klee: Death and Fire , Klee: Dood en Vuur Klee: In the Style of Kairouan , Klee: In de stijl van Kairouan Klee: Oriental Pleasure Garden Anagoria , Klee: Oosterse Pleziertuin Anagoria Klee: Polyphony 2 , Klee: Polyfonie 2 Klee: Red Waistcoat , Klee: Rode Taillejas Klimt: The Kiss , Klimt: De kus Kodak Elite Chrome 400 , Kodak Elite Chroom 400 Kuwahara , Koewehara Kuwahara on Painting , Koewehara op Schilderij Lab (Chroma Only) , Lab (alleen Chroma) Lab (Distinct) , Laboratorium (Distinct) Lab (Luma Only) , Lab (alleen Luma) Lab (Mixed) , Lab (Gemengd) Lab [all] , Lab [alle] Lab [Lightness] , Lab [Lichtheid] LAB-Lightness , LAB-Lichtheid Landscape , Landschap Landscape-1 , Landschap-1 Landscape-10 , Landschap-10 Landscape-2 , Landschap-2 Landscape-3 , Landschap-3 Landscape-4 , Landschap-4 Landscape-5 , Landschap-5 Landscape-6 , Landschap-6 Landscape-7 , Landschap-7 Landscape-8 , Landschap-8 Landscape-9 , Landschap-9 Large , Grote Large Noise , Groot lawaai Last , Laatste Last Frame , Laatste frame Late Afternoon Wanderlust , Laat in de middag Wanderlust Late Sunset , Late zonsondergang Lava Lamp , Lavalamp Layer , Laag Layer Processing , Laagverwerking Layers to Tiles , Lagen naar Tegels Lch [all] , Lch [alle] Lch [ch-Chrominances] , Lch [chrominances] Leaf , Blad Leaf Color , Bladkleur Leaf Opacity (%) , Bladopaciteit (%) Leak Type , Lektype Left , Links Left Foreground , Links Voorgrond Left / Right Blur (%) , Links / rechts Wazig (%) Left and Right Background , Links en rechts Achtergrond Left and Right Foreground , Links en rechts Voorgrond Left and Right Image Streams , Links en rechts beeldstromen Left Diagonal Foreground , Links Diagonale voorgrond Left Foreground , Links Voorgrond Left Position , Positie links Left Side Orientation , Linker zijwaartse oriëntatie Left Slope , Linker Helling Left Stream Only , Alleen linkse stroom Length , Lengte Lenticular Density LPI , Lenticulaire dichtheid LPI Lenticular Orientation , Lenticulaire oriëntatie Lenticular Print , Lenticulair afdrukken Level , Niveau Level Frequency , Niveau Frequentie Levels , Niveaus Life Giving Tree , Leven gevende boom Lifestyle & Commercial-1 , Levensstijl & Commerciële-1 Lifestyle & Commercial-10 , Levensstijl & Commerciële-10 Lifestyle & Commercial-2 , Levensstijl & Commerciële-2 Lifestyle & Commercial-3 , Levensstijl & Commerciële-3 Lifestyle & Commercial-4 , Levensstijl & Commerciële-4 Lifestyle & Commercial-5 , Levensstijl & Commerciële-5 Lifestyle & Commercial-6 , Levensstijl & Commerciële-6 Lifestyle & Commercial-7 , Levensstijl & Commerciële-7 Lifestyle & Commercial-8 , Levensstijl & Commerciële-8 Light , Licht Light (blown) , Licht (geblazen) Light Angle , Lichthoek Light Color , Lichte kleur Light Direction , Licht Richting Light Effect , Licht Effect Light Glow , Lichtgloed Light Grey , Lichtgrijs Light Leaks , Lichte lekken Light Motive , Licht motief Light Patch , Licht Flard Light Rays , Lichtstralen Light Smoothness , Lichte gladheid Light Strength , Lichtsterkte Light Type , Licht Type Light-Y , Licht-Y Lighten , Verlicht Lighten Edges , Randen lichter maken Lighter , Lichter Lighting , Verlichting Lighting Angle , Verlichtingshoek Lightness , Lichtheid Lightness (%) , Lichtheid (%) Lightness Factor , Lichtheidsfactor Lightness Level , Lichtheidsgraad Lightness Max (%) , Lichtheid Max (%) Lightness Min (%) , Lichtheid Min (%) Lightness Shift , Lichtheidsverschuiving Lightness Smoothness , Lichtheid Gladheid Lightning , Bliksem Lighty Smooth , Licht glad Limit Hue Range , Limiet Tintwaaier Line , Lijn Line Opacity , Lijndoorzichtigheid Line Precision , Lijnprecisie Linear , Lineair Linear Burn , Lineaire verbranding Linear Light , Lineair licht Linear RGB , Lineair RGB Linear RGB [All] , Lineair RGB [Alle] Linear RGB [Blue] , Lineair RGB [Blauw] Linear RGB [Green] , Lineair RGB [Groen] Linear RGB [Red] , Lineair RGB [Rood] Linearburn , Lineaire verbranding Linearity , Lineariteit Linearlight , Lineair licht Lineart + Color Spots , Lineart + Kleurvlekken Lineart + Color Spots + Extrapolated Colors , Lineart + Kleurvlekken + Geëxtrapoleerde kleuren Lineart + Colors , Lineart + Kleuren Lineart + Extrapolated Colors , Lineart + geëxtrapoleerde kleuren Lines , Lijnen Lines (256) , Lijnen (256) Lion , Leeuw Lissajous [Animated] , Lissajous [Animatie] Lissajous Spiral , Lissajous Spiraal Little , Kleine Little Blue , Kleine Blauwe Little Cyan , Kleine Cyaan Little Green , Klein groen Little Key , Kleine sleutel Little Magenta , Kleine Magenta Little Red , Roodkapje Little Yellow , Kleine Geel LN Average-Smoothness , LN Gemiddelde-Snelheid LN Size , LN-Grootte Local Normalisation , Lokale normalisering Local Contrast , Lokaal contrast Local Contrast Effect , Lokaal contrasteffect Local Contrast Enhance , Lokaal contrast verbeteren Local Contrast Enhancement , Lokale contrastversterking Local Contrast Style , Lokaal Contrast Stijl Local Detail Enhancer , Lokale Detail Enhancer Local Normalization , Lokale normalisatie Local Orientation , Lokale Oriëntatie Local Processing , Lokale verwerking Local Similarity Mask , Lokale gelijkenis Masker Local Variance Normalization , Lokale variantie Normalisatie Lock Return Scaling to Source Layer , Schaalvergroting van het slot terug naar de bronlaag Lock Source , Slotbron Lock Uniform Sampling , Slot Uniforme Bemonstering Log(z) , Logboek(z) Logarithmic Distortion , Logaritmische vervorming Logarithmic Distortion Axis Combination for X-Axis , Logaritmische vervormingsascombinatie voor X-as Logarithmic Distortion Axis Combination for Y-Axis , Logaritmische vervormingsascombinatie voor Y-as Logarithmic Distortion X-Axis Direction , Logaritmische vervorming X-asrichting Logarithmic Distortion Y-Axis Direction , Logaritmische vervorming Y-Axis Richting Lomography Redscale 100 , Lomografie Roodschaal 100 Lomography X-Pro Slide 200 , Lomografie X-Pro Slide 200 Lookup , Zoeken op Lookup Size , Opzoekgrootte Loop Method , Lusmethode Low , Laag Low Bias , Lage vooringenomenheid Low Contrast Blue , Laag contrast blauw Low Frequency , Lage frequentie Low Frequency Layer , Laagfrequente laag Low Key 01 , Lage toets 01 Low Scale , Lage Schaal Low Value , Lage waarde Lower Layer Is the Bottom Layer for All Blends , Onderste laag is de onderste laag voor alle mengsels Lower Mask Threshold (%) , Lagere masker drempel (%) Lower Side Orientation , Onderzijde Oriëntatie Lowercase Letters , Kleine letters Lucky 64 , Geluksvogel 64 Luma Noise , Luma-geluid Luminance , Luminantie Luminance Factor , Helderheidsfactor Luminance Level , Helderheidsniveau Luminance Only , Alleen luminantie Luminance Only (Lab) , Alleen luminantie (Lab) Luminance Only (YCbCr) , Alleen luminantie (YCbCr) Luminance Shift , Luminantieverschuiving Luminance Smoothness , Helderheid Gladheid Luminosity from Color , Helderheid van kleur Luminosity Type , Type lichtsterkte Lush Green Summer , Weelderige groene zomer LUTs Pack , LUTs-pakket Lylejk's Painting , Lylejk's schilderij Magenta Coffee , Magenta Koffie Magenta Day , Magenta Dag Magenta Day 01 , Magenta Dag 01 Magenta Dream , Magenta Droom Magenta Factor , Magenta-factor Magenta Smoothness , Magenta Gladheid Magenta Yellow , Magenta Geel Magenta-Yellow , Magenta-Geel Magic Details , Magische details Magnitude / Phase , Omvang / Fase Make Hue Depends on Region Size , Maak Hue afhankelijk van de grootte van de regio Make Seamless [Diffusion] , Naadloos maken [Diffusion] Make Seamless [Patch-Based] , Naadloos maken [Patch-Based] Make Squiggly , Maak Squiggly Make Up , Make-up Manual , Handleiding Manual Controls , Handmatige bediening Map , Kaart Map Tones , Kaart Tonen Mapping , Het in kaart brengen van Marble , Marmer Margin (%) , Marge (%) Mascot Image , Mascottebeeld Masculine , Mannelijk Mask , Masker Mask + Background , Masker + Achtergrond Mask as Bottom Layer , Masker als bodemlaag Mask By , Masker door Mask Color , Masker Kleur Mask Contrast , Maskercontrast Mask Creator , Maskerontwerper Mask Dilation , Masker Dilatatie Mask Size , Maskergrootte Mask Smoothness (%) , Masker Gladheid (%) Mask Type , Maskertype Masked Image , Gemaskerd beeld Masking , Maskeren Match Colors With , Matchen van kleuren met Matching Precision (Smaller Is Faster) , Bijpassende Precisie (Kleiner is sneller) Math Symbols , Wiskundige symbolen Max , Max. Max Angle , Max. hoek Max Angle Deviation (deg) , Max Hoekafwijking (deg) Max Area , Max. gebied Max Cut (%) , Max. Snijding (%) Max Iterations , Max Iteraties Max Length (%) , Maximale lengte (%) Max Offset (%) , Maximale compensatie (%) Max Radius , Max. radius Max Threshold , Max. drempel Maximal Area , Maximale oppervlakte Maximal Color Saturation , Maximale kleurverzadiging Maximal Highlights , Maximale hoogtepunten Maximal Radius , Maximale straal Maximal Seams per Iteration (%) , Maximaal aantal naden per Iteratie (%) Maximal Size , Maximale afmeting Maximal Value , Maximale waarde Maximum , Maximaal Maximum Dimension , Maximale afmeting Maximum Image Size , Maximale beeldgrootte Maximum Number of Image Colors , Maximaal aantal beeldkleuren Maximum Number of Output Layers , Maximaal aantal uitgangslagen Maximum Red:Blue Ratio in the Fringe , Maximum Rood: Blauwe Verhouding in de Fringe Maximum Saturation , Maximale verzadiging Maximum Size Factor , Maximale groottefactor Maximum Value , Maximale waarde Maze , Doolhof Maze Type , Doolhoftype Mean Color , Betekenis van de kleur Mean Curvature , Gemiddelde kromming Median , Mediaan Median (beware: Memory-Consuming!) , Mediaan (let op: Geheugenverlies!) Median Radius , Mediane Straal Medium Details Smoothness , Medium Details Gladheid Medium Details Threshold , Medium Details Drempel Medium Frequency Layer , Medium Frequentieregelaar Medium Scale (Original) , Medium Scale (Origineel) Medium Scale (Smoothed) , Medium Schaal (Gladgemaakt) Memories , Herinneringen Merge Brightness / Colors , Helderheid / Kleuren samenvoegen Merge Layers? , Lagen samenvoegen? Merging Mode , Samenvoeging modus Merging Option , Samenvoegingsoptie Merging Steps , Samenvoeging van stappen Mess with Bits , Mess met Bits Metal , Metaal Method , Methode Metric , Metrisch Micro/macro Details Adjusted , Micro/macro details Aangepast Mid , Midden Mid Grey , Midden-Grijs Mid Noise , Midden-geluid Mid Offset , Tussentijdse compensatie Mid Tone Contrast , Middentooncontrast Mid-Dark Grey , Midden-Donkergrijs Mid-Light Grey , Midden-Lichtgrijs Middle Grey , Middengrijs Middle Scale , Middenschaal Midpoint , Midpunt Midtones Brightness , Midtonen Helderheid Midtones Color Intensity , Midtonen Kleurintensiteit Mighty Details , Machtige details Min Angle Deviation (deg) , Min Hoekafwijking (deg) Min Area % , Min Oppervlakte % Min Cut (%) , Min. Snijding (%) Min Length (%) , Min. lengte (%) Min Offset (%) , Min. Verrekening (%) Min Radius , Min. radius Min Threshold , Min. drempel Mineral Mosaic , Mineraalmozaïek Minesweeper , Mijnenveger Minimal Area , Minimaal gebied Minimal Area (%) , Minimale oppervlakte (%) Minimal Color Intensity , Minimale kleurintensiteit Minimal Highlights , Minimale hoogtepunten Minimal Path , Minimaal pad Minimal Radius , Minimale straal Minimal Region Area , Minimaal gebied Minimal Scale (%) , Minimale schaal (%) Minimal Shape Area , Minimale vormgebied Minimal Size , Minimale omvang Minimal Size (%) , Minimale omvang (%) Minimal Stroke Length , Minimale slaglengte Minimal Value , Minimale waarde Minimalist Caffeination , Minimalistische Cafeïne Minimum , Minimaal Minimum Brightness , Minimale helderheid Minimum Red:Blue Ratio in the Fringe , Minimum Rood: Blauwe Ratio in de Fringe Mirror , Spiegel Mirror Effect , Spiegeleffect Mirror X , Spiegel X Mirror Y , Spiegel Y Mirror-X , Spiegel-X Mirror-Y , Spiegel-Y Mix , Meng Mixed Mode , Gemengde modus Mixer [CMYK] , Mengmachine [CMYK] Mixer [HSV] , Mengmachine [HSV] Mixer [Lab] , Mengmachine [Lab] Mixer [PCA] , Mengmachine [PCA] Mixer Style , Mixer Stijl Mode , Modus Modern Film , Moderne film Modulo Value , Modulowaarde Moiré Animation , Moiré Animatie Moire Removal , Moire-verwijdering Moire Removal Method , Moire-verwijderingsmethode Mondrian: Composition in Red-Yellow-Blue , Mondriaan: Samenstelling in Rood-Geel-Blauw Mondrian: Evening; Red Tree , Mondriaan: Avond; Rode Boom Mondrian: Gray Tree , Mondriaan: Grijze Boom Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore in de schemering. Monet: Water-Lily Pond , Monet: Waterlelie-vijver Monet: Wheatstacks - End of Summer , Monet: Korenstapels - Einde van de zomer Monkey , Aap Mono Tinted , Mono Getint Mono-Directional , Mono-Directioneel Monochrome , Monochroom Monochrome 1 , Monochroom 1 Monochrome 2 , Monochroom 2 Moonlight , Maanlicht Moonlight 01 , Maanlicht 01 Moonrise , Maanopkomst Morning 6 , Ochtend 6 Morph [Interactive] , Morph [Interactief] Morph Layers , Morph Lagen Morphological - Fastest Sharpest Output , Morfologisch - Snelste Scherpste Uitvoer Morphological Closing , Morfologische afsluiting Morphological Filter , Morfologische filter Morphology Painting , Morfologie Schilderen Morphology Strength , Morfologie Sterkte Mosaic , Mozaïek Most , De meeste Mostly Blue , Meestal Blauw Much , Veel Much Blue , Veel Blauw Much Green , Veel groen Much Red , Veel rood Multi-Layer Etch , Meerlaagse ets Multiple Colored Shapes Over Transp. BG , Meerkleurige vormen over transp. BG Multiple Layers , Meerdere lagen Multiplier , Vermenigvuldiger Multiply , Vermenigvuldig Multiscale Operator , Multiscale-exploitant Munch: The Scream , Munch: De schreeuw Mute Shift , Stomme verschuiving Muted 01 , Gedempt 01 Muted Fade , Gedempt verbleken Mystic Purple Sunset , Mystieke Paarse Zonsondergang Name , Naam Natural (vivid) , Natuurlijk (levendig) Nature & Wildlife-1 , Natuur & Wildlife-1 Nature & Wildlife-10 , Natuur & Wildlife-10 Nature & Wildlife-2 , Natuur & Wildlife-2 Nature & Wildlife-3 , Natuur & Wildlife-3 Nature & Wildlife-4 , Natuur & Wildlife-4 Nature & Wildlife-5 , Natuur & Wildlife-5 Nature & Wildlife-6 , Natuur & Wildlife-6 Nature & Wildlife-7 , Natuur & Wildlife-7 Nature & Wildlife-8 , Natuur & Wildlife-8 Nature & Wildlife-9 , Natuur & Wildlife-9 Nb Circles Surrounding , Nb-cirkels rondom Near Black , In de buurt van Zwart Nearest , Dichtstbijzijnde Nearest Neighbor , Dichtstbijzijnde buurman Neat Merge , Keurig samenvoegen Nebulous , Nevelig Negate , Verwaarloos Negation , Verwaarlozing Negative , Negatief Negative [Color] (13) , Negatief [Kleur] (13) Negative [New] (39) , Negatief [Nieuw] (39) Negative [Old] (44) , Negatief [Oud] (44) Negative Color Abstraction , Negatieve kleurenabstractie Negative Colors , Negatieve kleuren Negative Effect , Negatief effect Neighborhood Size (%) , Buurtgrootte (%) Neighborhood Smoothness , Buurt Gladheid Neon Lightning , Neonbliksem Neutral Color , Neutrale kleur Neutral Teal Orange , Neutraal Teal Oranje Neutral Warm Fade , Neutraal Warm Fade New Curves [Interactive] , Nieuwe curven [Interactief] Newspaper , Krant Night 01 , Nacht 01 Night Blade 4 , Nachtblad 4 Night From Day , Nacht van de dag Night King 141 , Nachtkoning 141 Night Spy , Nachtspion Nine Layers , Negen lagen No Masking , Geen maskering No Recovery , Geen herstel No Rescaling , Geen Herschaling No Transparency , Geen transparantie Noise , Lawaai Noise [Additive] , Lawaai [Additief] Noise [Perlin] , Lawaai [Perlin] Noise [Spread] , Lawaai [Spread] Noise A , Lawaai A Noise B , Lawaai B Noise C , Lawaai C Noise D , Lawaai D Noise Level , Geluidsniveau Noise Scale , Geluidsschaal Noise Type , Geluidstype Non / No , Niet / Nee Non-Linearity , Niet-lineariteit Non-Rigid , Niet-rigide None , Geen None (Allows Multi-Layers) , Geen (Maakt Multi-Layers mogelijk) None- Skip , Niet overslaan Norm Type , Normaal Type Normal , Normaal Normal Map , Normale kaart Normal Output , Normale uitgang Normalization , Normalisatie Normalize , Normaliseer Normalize Brightness , Helderheid normaliseren Normalize Colors , Kleuren normaliseren Normalize Illumination , Verlichting normaliseren Normalize Input , Input normaliseren Normalize Luma , Luma normaliseren Normalize Scales , Normaliseer Schalen Nostalgia Honey , Nostalgie Honing Nostalgic , Nostalgische Nothing , Niets Number , Aantal Number of Added Frames , Aantal toegevoegde frames Number of Angles , Aantal hoeken Number of Clusters , Aantal Clusters Number of Colors , Aantal kleuren Number of Frames , Aantal Frames Number of Inter-Frames , Aantal interframes Number of Iterations per Scale , Aantal Iteraties per Schaal Number of Key-Frames , Aantal Key-Frames Number of Levels , Aantal niveaus Number of Matches (Coarsest) , Aantal wedstrijden (grofste) Number of Matches (Finest) , Aantal Wedstrijden (Fijnste) Number of Orientations , Aantal Oriëntaties Number Of Rays , Aantal stralen Number of Scales , Aantal schalen Number of Sizes , Aantal Maten Number of Streaks , Aantal strepen Number of Teeth , Aantal tanden Number of Tones , Aantal Tonen Object Animation , Animatie van het object Object Ratio , Objectratio Object Tolerance , Objecttolerantie Octagon , Achthoek Octagonal , Achthoekig Octaves , Octaven Oddness (%) , Raarheid (%) Off , Uit Offset , Compensatie Offset (%) , Compensatie (%) Offset Angle Rays Layer 1 , Offset Hoekstralen Laag 1 Offset Angle Rays Layer 2 , Offset Hoeklaag 2 Old Method - Slowest , Oude methode - Langzaamste Old Photograph , Oude foto Old West , Oude Westen ON1 Photography (90) , ON1 Fotografie (90) One Layer , Eén laag One Layer (Horizontal) , Eén laag (horizontaal) One Layer (Vertical) , Eén laag (verticaal) One Layer per Single Color , Eén laag per enkele kleur One Layer per Single Region , Eén laag per regio One Thread , Een draad Only Leafs , Alleen Bladeren Only Red , Alleen rood Only Red and Blue , Alleen rood en blauw Opacity , Opaciteit Opacity (%) , Opaciteit (%) Opacity as Heightmap , Opaciteit als hoogtekaart Opacity Contours , Opaciteitscontouren Opacity Factor , Opaciteitsfactor Opacity Gain , Opaciteitswinst Opacity Gamma , Opaciteitsgamma Opacity Snowflake , Opaciteitssneeuwvlokje Opacity Threshold (%) , Opaciteitsdrempel (%) Opaque Pixels , Ondoorzichtige Pixels Opaque Regions on Top Layer , Ondoorzichtige regio's op de bovenste laag Opaque Skin , Ondoorzichtige huid Open Interactive Preview , Open Interactieve Voorvertoning Operation Yellow , Operatie Geel Operator , Exploitant Opposing , Tegen Optimized Lateral Inhibition , Geoptimaliseerde zijdelingse remming Orange Dark 4 , Oranje Donker 4 Orange Dark 7 , Oranje Donker 7 Orange Dark Look , Oranje Donkerblauw uiterlijk Orange Tone , Oranje Tint Orange Underexposed , Oranje Onderbelicht Oranges , Sinaasappels Order , Bestel Order By , Bestel door Orientation , Oriëntatie Orientation Coherence , Oriëntatie Coherentie Orientation Only , Alleen de oriëntatie Orientations , Oriëntaties Original , Origineel Original - (Opening + Closing)/2 , Origineel - (openen + sluiten)/2 Original - Erosion , Origineel - Erosie Original - Opening , Origineel - Opening Orthogonal Radius , Orthogonale Straal Orton Glow , Orton Gloed Others (69) , Andere (69) Ouline Color , Ouline kleur Outer , Buiten Outer Fading , Buitenvervaging Outer Length , Buitenlengte Outer Radius , Buitenste straal Outline , Overzicht Outline (%) , Overzicht (%) Outline Color , Overzicht Kleur Outline Contrast , Contrast in hoofdlijnen Outline Opacity , Ondoorzichtigheid in grote lijnen Outline Size , Overzicht van de grootte Outline Smoothness , Overzicht Gladheid Outline Thickness , Schetsdikte Outlined , Uitgebreid Output , Uitgang Output As , Uitgang als Output as Files , Uitvoer als bestanden Output as Frames , Uitgang als Frames Output as Multiple Layers , Uitvoer als meerdere lagen Output as Separate Layers , Uitgang als afzonderlijke lagen Output Ascii File , Uitvoer Ascii-bestand Output Chroma NR , Uitgang Chroma NR Output CLUT , Uitgang CLUT Output CLUT Resolution , Output CLUT Resolutie Output Coordinates File , Uitvoercoördinaten Bestand Output Corresponding CLUT , Uitgang Corresponderende CLUT Output Directory , Uitvoergids Output Each Piece on a Different Layer , Uitvoer elk stuk op een andere laag Output Filename , Uitgang Filenaam Output Files , Uitvoerbestanden Output Folder , Uitgangsmap Output Format , Uitgangsformaat Output Frames , Uitgangsframes Output Height , Uitgangshoogte Output HTML File , Uitvoer HTML-bestand Output Layers , Uitgangslagen Output Mode , Uitgangsmodus Output Multiple Layers , Uitgang Meerdere lagen Output Preset as a HaldCLUT Layer , Uitgang Vooraf ingesteld als een HaldCLUT laag Output Region Delimiters , Uitgangsregio afbakeningen Output Saturation , Uitgangsverzadiging Output Sharpening , Uitgangsverscherping Output Stroke Layer On , Uitgangsslaglaag Aan Output to Folder , Uitvoer naar de map Output Type , Uitgangstype Output Width , Uitgangsbreedte Outside , Buiten Outside Color , Buiten kleur Outward , Naar buiten toe Overall Blur , Algehele vervaging Overall Contrast , Algemeen contrast Overall Lightness , Totale lichtheid Pack , Pakket Pack Sprites , Pakje Sprites Padding (px) , Vulling (px) Paint , Verf Paint Daub , Verf Daub Paint Effect , Verfeffect Paint Splat , Verf Splat Painter's Edge Protection Flow , Schildersrandbeschermingsstroom Painter's Smoothness , Gladheid van de schilder Painter's Touch Sharpness , Schilders Touch Sharpness Painting , Schilderij Painting Opacity , Schilderij Opaciteit Paintstroke , Verfslag Paper Texture , Papierstructuur Parallel Processing , Parallelle verwerking Parrots , Papegaaien Passing By , Voorbijgaand Pastell Art , Pastelkunst Patch Measure , Patch-maatstaf Patch Size , Patchmaat Patch Size for Analysis , Patchgrootte voor analyse Patch Size for Synthesis , Patchmaat voor synthese Patch Size for Synthesis (Final) , Patchgrootte voor synthese (Final) Patch Smoothness , Patch Gladheid Patch Variance , Patchvariant Pattern , Patroon Pattern Angle , Patroonhoek Pattern Height , Patroonhoogte Pattern Type , Patroontype Pattern Variation 1 , Patroonvariatie 1 Pattern Variation 2 , Patroonvariatie 2 Pattern Variation 3 , Patroonvariatie 3 Pattern Weight , Patroongewicht Pattern Width , Patroonbreedte PCA Transfer , PCA-overdracht Pea Soup , Erwtensoep Pen Drawing , Pentekening Penalize Patch Repetitions , Penalize Patch Herhalingen Pencil , Potlood Pencil Amplitude , Potloodamplitude Pencil Portrait , Potloodportret Pencil Size , Potloodgrootte Pencil Smoother Edge Protection , Potlood gladdere randbescherming Pencil Smoother Sharpness , Potlood Gladder Scherpte Pencil Smoother Smoothness , Potlood gladder gladheid Pencil Type , Type potlood Pencils , Potloden Peppers , Paprika's Percent of Image Half-Hypotenuse (%) , Percentage van het beeld halfpotentiaal (%) Periodic , Periodiek Periodic Dots , Periodieke stippen Periodicity , Periodiciteit Perserve Luminance , Perspectief Luminantie Perspective , Perspectief Perturbation , Perturbatie Petals , Bloemblaadjes Phase , Fase Phone , Telefoon PhotoComix Preset , PhotoComix Vooraf ingesteld Photoillustration , Fotoillustratie Picasso: Seated Woman , Picasso: Zittende vrouw Picasso: The Reservoir - Horta De Ebro , Picasso: Het stuwmeer - Horta De Ebro Piece Complexity , Stukje complexiteit Piece Size (px) , Stukgrootte (px) Pin Light , Speldlicht Pink Fade , Roze Vervaagt Pixel Sort , Pixel Sorteren Pixel Values , Pixelwaarden Placement , Plaatsing Plaid , Gereserveerd Plane , Vliegtuig Plasma Effect , Plasma-effect Plot Type , Plottype Point #0 , Punt #0 Point #1 , Punt 1 Point #2 , Punt 2 Point #3 , Punt 3 Point 1 , Punt 1 Point 2 , Punt 2 Points , Punten Polar Transform , Polaire Transformatie Polaroid 665 -- , Polaroid 665... Polaroid 665 Negative , Polaroid 665 Negatief Polaroid 665 Negative + , Polaroid 665 Negatief + Polaroid 665 Negative - , Polaroid 665 Negatief - Polaroid 665 Negative HC , Polaroid 665 Negatief HC Polaroid 669 -- , Polaroid 669... Polaroid 669 Cold , Polaroid 669 Koud Polaroid 669 Cold + , Polaroid 669 Koud + Polaroid 669 Cold - , Polaroid 669 Koud - Polaroid 669 Cold -- , Polaroid 669 Koud... Polaroid 690 -- , Polaroid 690... Polaroid 690 Cold , Polaroid 690 Koud Polaroid 690 Cold + , Polaroid 690 Koud + Polaroid 690 Cold ++ , Polaroid 690 Koud ++ Polaroid 690 Cold - , Polaroid 690 Koud - Polaroid 690 Cold -- , Polaroid 690 Koud... Polaroid 690 Warm -- , Polaroid 690 Warm... Polaroid Polachrome , Polaroidpolachroom Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ Koud ++ Polaroid PX-100UV+ Cold +++ , Polaroid PX-100UV+ Koud ++++ Polaroid PX-100UV+ Cold -- , Polaroid PX-100UV+ Cold... Polaroid PX-100UV+ Warm -- , Polaroid PX-100UV+ Warm... Polaroid PX-680 -- , Polaroid PX-680... Polaroid PX-680 Cold , Polaroid PX-680 Koud Polaroid PX-680 Cold + , Polaroid PX-680 Koud + Polaroid PX-680 Cold ++ , Polaroid PX-680 Koud ++ Polaroid PX-680 Cold ++a , Polaroid PX-680 Koud ++a Polaroid PX-680 Cold - , Polaroid PX-680 Koud - Polaroid PX-680 Cold -- , Polaroid PX-680 Koud... Polaroid PX-680 Warm -- , Polaroid PX-680 Warm - Polaroid PX-70 -- , Polaroid PX-70 - Polaroid PX-70 Cold , Polaroid PX-70 Koud Polaroid PX-70 Cold + , Polaroid PX-70 Koud + Polaroid PX-70 Cold ++ , Polaroid PX-70 Koud ++ Polaroid PX-70 Cold -- , Polaroid PX-70 Cold... Polaroid PX-70 Warm -- , Polaroid PX-70 Warm - Polaroid Time Zero (Expired) , Polaroid Tijd Nul (Verlopen) Polaroid Time Zero (Expired) + , Polaroid Time Zero (Verlopen) + Polaroid Time Zero (Expired) ++ , Polaroid Tijd Nul (Verlopen) ++ Polaroid Time Zero (Expired) - , Polaroid Time Zero (Verlopen) - Polaroid Time Zero (Expired) -- , Polaroid Time Zero (Verlopen)... Polaroid Time Zero (Expired) --- , Polaroid Time Zero (Verlopen) --- Polaroid Time Zero (Expired) Cold , Polaroid Time Zero (Verlopen) Cold Polaroid Time Zero (Expired) Cold - , Polaroid Time Zero (Verlopen) Cold - Polaroid Time Zero (Expired) Cold -- , Polaroid Time Zero (Verlopen) Cold - Polaroid Time Zero (Expired) Cold --- , Polaroid Time Zero (Verlopen) Cold --- Pole Lat , Poollat Pole Long , Pool lang Pole Rotation , Paalomwenteling Pollock: Convergence , Pollock: Convergentie Pollock: Summertime Number 9A , Pollock: Zomertijd Nummer 9A Polygonize [Energy] , Polygoniseren [Energie] Pop Shadows , Pop Schaduwen Portrait , Portret Portrait Retouching , Portretretretretretretret Portrait-1 , Portret-1 Portrait-2 , Portret-2 Portrait-3 , Portret-3 Portrait-4 , Portret-4 Portrait-7 , Portret-7 Portrait0 , Portret0 Portrait1 , Portret1 Portrait10 , Portret10 Portrait2 , Portret2 Portrait3 , Portret3 Portrait4 , Portret4 Portrait5 , Portret5 Portrait6 , Portret6 Portrait7 , Portret7 Portrait8 , Portret8 Portrait9 , Portret9 Position , Positie Position X (%) , Positie X (%) Position X Origin (%) , Positie X Herkomst (%) Position Y (%) , Positie Y (%) Position Y Origin (%) , Positie Y Herkomst (%) Positive , Positief Post-Normalize , Post-Normaliseer Post-Process , Post-proces Poster Edges , Posterranden Posterization Antialiasing , Posterisatie Anti-aliasing Posterization Level , Posterisatie niveau Posterized Dithering , Geposterde Dithering Power , Vermogen Pre-Defined , Vooraf gedefinieerd Pre-Defined Colormap , Vooraf gedefinieerde Colormap Pre-Normalize , Pre-Normaliseer Pre-Normalize Image , Beeld pre-normaliseren Pre-Process , Voorafgaand aan het proces Precision , Precisie Precision (%) , Precisie (%) Preliminary Surface Shift , Voorlopige oppervlakteverschuiving Preliminary X-Axis Scaling , Voorlopige X-Axis-schaalverdeling Preliminary Y-Axis Scaling , Voorlopige Y-Axis-schaalverdeling Preprocessor Power , Voorbereidend vermogen Preprocessor Radius , Voorganger Straal Preserve Canvas for Post Bump Mapping , Conserveer Canvas voor Post Bump Mapping Preserve Edges , Behoud van de randen Preserve Image Dimension , Behoud van de Beeldafmeting Preserve Initial Brightness , Behoud van de initiële helderheid Preserve Luminance , Behoud van de helderheid Preset , Vooraf ingesteld Preview , Voorbeeld Preview All Outputs , Voorbeeld van alle uitgangen Preview Bands , Voorbeeldbanden Preview Brush , Voorbeeldborstel Preview Data , Voorbeeldgegevens Preview Detected Shapes , Voorbeeld gedetecteerde vormen Preview Frame Selection , Voorbeeldframe selectie Preview Gradient , Voorbeeldgradiënt Preview Grain Alone , Voorbeeld korrel alleen Preview Grid , Voorbeeldvenster Preview Guides , Voorbeeldgidsen Preview Mapping , Voorbeeldkartering Preview Mask , Voorbeeldmasker Preview Only Shadow , Voorbeeld van alleen de schaduw Preview Opacity (%) , Preview Opaciteit (%) Preview Original , Voorbeeld origineel Preview Precision , Preview Precisie Preview Progress (%) , Voorbeeld van vooruitgang (%) Preview Progression While Running , Voorproefje van de vooruitgang tijdens het lopen Preview Ref Point , Voorbeeld-referentiepunt Preview Reference Circle , Preview Referentie Cirkel Preview Selection , Voorbeeldselectie Preview Shape , Voorbeeldvorm Preview Shows , Voorbeeldschermen Preview Subsampling , Voorbeeldbemonstering Preview Time , Voorvertoningstijd Preview Tones Map , Preview Tones Kaart Preview Type , Voorvertoningstype Preview Without Alpha , Voorbeschouwing zonder Alpha Primary Angle , Primaire hoek Primary Color , Primaire kleur Primary Factor , Primaire factor Primary Gamma , Primair Gamma Primary Radius , Primaire Straal Primary Shift , Primaire verschuiving Primary Twist , Primaire draai Print Adjustment Marks , Aanpassingsmarkeringen afdrukken Print Films (12) , Drukfilms (12) Print Frame Numbers , Printframe nummers Print Size Unit , Drukgrootte-eenheid Print Size Width , Printgrootte Breedte Privacy Notice , Privacymededeling Pro Neg Hi , Pro Negé Hoi Probability Map , Waarschijnlijkheidskaart Procedural , Procedureel Process As , Proces Zoals Process by Blocs of Size , Proces per blok van grootte Process Channels Individually , Proceskanalen Individueel Process Top Layer Only , Alleen de bovenste laag van het proces Process Transparency , Transparantie van het proces Processing Mode , Verwerkingswijze Propagation , Voortplanting Proportion , Aandeel Protanomaly , Protanomalie Protect Highlights 01 , Beschermen Hoogtepunten 01 Prussian Blue , Pruisisch Blauw Purple , Paars Purple11 (12) , Paars11 (12) Puzzle , Puzzel Pyramid , Piramide Pyramid Processing , Piramide verwerking Pythagoras Tree , Pythagoras Boom Quadratic , Kwadratisch Quadtree Variations , Kwadrantenvariaties Quality , Kwaliteit Quality (%) , Kwaliteit (%) Quantization , Quantizatie Quantize Colors , Quantize Kleuren Quasi-Gaussian , Quasi-Gaussisch Quick , Snelle Quick Copyright , Snelle Copyright Quick Enlarge , Snel Vergroten R/B Smoothness (Principal) , R/B Gladheid (Opdrachtgever) R/B Smoothness (Secondary) , R/B Gladheid (Secundair) Radial , Radiaal Radius , Straal Radius (%) , Straal (%) Radius / Angle , Straal / Hoek Radius [Manual] , Straal [Handleiding] Radius Cut , Straalsnede Radius Middle Circle , Radius Middencirkel Radius Outer Circle A (>0 W%) (<0 H%) , Straal Buitenste Cirkel A (>0 W%) (<0 H%) Rain & Snow , Regen & Sneeuw Rainbow , Regenboog Raindrops , Regendruppels Random , Willekeurig Random [non-Transparent] , Willekeurig [niet-transparant] Random Angle , Willekeurige hoek Random Color Ellipses , Willekeurige kleur ellipsen Random Colors , Willekeurige kleuren Random Seed , Willekeurig zaad Random Shade Stripes , Willekeurige Schaduwstrepen Randomize , Willekeurig Randomized , Gerandomiseerde Randomness , Willekeurigheid Range , Reeks Ratio , Verhouding Raw , Ruw Rays , Stralen Rays Colors AB , Stralen Kleuren AB Rays Colors ABC , Stralen Kleuren ABC Rays Colors ABCD , Stralen Kleuren ABCD Rays Colors ABCDE , Stralen Kleuren ABCDE Rays Colors ABCDEF , Stralen Kleuren ABCDEF Rays Colors ABCDEFG , Stralen Kleuren ABCDEFG Rebuild From Similar Blocs , Herbouwen van soortgelijke blokken Recompose , Herstel Reconstruct From Previous Frames , Reconstructie van eerdere Frames Recover , Herstel Recover Highlights , Hoogtepunten herstellen Recover Shadows , Schaduwen herstellen Recovery , Herstel Rectangle , Rechthoek Recursion Depth , Recursiediepte Recursions , Recursies Recursive Median , Recursieve mediaan Red , Rood Red - Green - Blue , Rood - Groen - Blauw Red - Green - Blue - Alpha , Rood - Groen - Blauw - Alfa Red Afternoon 01 , Rode Middag 01 Red Blue Yellow , Rood Blauw Geel Red Chroma Factor , Rode Chroma Factor Red Chroma Shift , Rode Chroma Shift Red Chroma Smoothness , Rood Chroma Gladheid Red Chrominance , Rode Chrominantie Red Day 01 , Rode dag 01 Red Dream 01 , Rode Droom 01 Red Factor , Rode factor Red Level , Rood niveau Red Rotations , Rood Omwentelingen Red Shift , Rode Verschuiving Red Smoothness , Rood Gladheid Red Wavelength , Rode Golflengte Red-Eye Attenuation , Roodoogverzwakking Red-Green , Rood-Groen Reds , Roden Reds Oranges Yellows , Roodappelsinaasappels Geel Reduce Halos , Halo's verminderen Reduce Noise , Geluidsreductie Reduce RAM , Verminder het RAM Reduce Redness , Roodheid verminderen Reference , Referentie Reference Angle (deg.) , Referentiehoek (deg.) Reference Color , Referentiekleur Reference Colors , Referentie Kleuren Reflect , Reflecteer Reflection , Reflectie Refraction , Breking Regular Grid , Regulier rooster Regularity , Regelmatigheid Regularity (%) , Regelmatigheid (%) Regularization , Regularisatie Regularization (%) , Regularisatie (%) Regularization Factor , Regularisatiefactor Regularization Iterations , Regularisatie Iteraties Reject , Wijs af. Rejected Colors , Afgewezen kleuren Rejected Mask , Afgewezen masker Relative Block Count , Relatieve bloktelling Relative Size , Relatieve Grootte Relative Warping , Relatieve kromming Release Notes , Toelichting bij de uitgave Relief , Ontlasting Relief Amplitude , Ontlastingsamplitude Relief Contrast , Ontlastingscontrast Relief Light , Ontlastingslicht Relief Size , Reliëfgrootte Relief Smoothness , Ontlasting Gladheid Remove Artifacts From Micro/Macro Detail , Verwijder artefacten uit Micro/Macro Detail Remove Hot Pixels , Hete Pixels verwijderen Remove Tile , Tegel verwijderen Render on Dark Areas , Render op donkere gebieden Render on White Areas , Render op Witte Gebieden Render Routine for Wiggle Animations , Render Routine voor Wiggle Animaties Rendering Mode , Rendering modus Repair Scanned Document , Reparatie gescand document Repeat , Herhaal Repeat [Memory Consuming!] , Herhaal [Geheugengebruik!] Repeats , Herhaalt Replace , Vervang Replace (Sharpest) , Vervangen (Scherpste) Replace Layer with CLUT , Laag vervangen door CLUT Replace Source by Target , Vervang Bron door Doel Replace With White , Vervangen door wit Replaced Color , Vervangende kleur Replacement Color , Vervangingskleur Reptile , Reptiel Rescaling , Herschaling Resize Image for Optimum Effect , Beeld opnieuw dimensioneren voor een optimaal effect Resolution , Resolutie Resolution (%) , Resolutie (%) Resolution (px) , Resolutie (px) Rest 33 , Rust 33 Result Image , Resultaat Beeld Result Type , Type resultaat Resynthetize Texture [FFT] , Resynthetiseren van de textuur [FFT] Resynthetize Texture [Patch-Based] , Resynthetiseren van de textuur [Patch-Based] Retouch Layer , Retoucheringslaag Retouched and Sharpened Areas , Geretoucheerde en geslepen gebieden Retouched Areas Only , Alleen geretoucheerde gebieden Retouched Image , Geretoucheerd beeld Retouched Image Basic , Geretoucheerde afbeelding Basic Retouched Image Final , Geretoucheerde Beeld Finale Retouching Style , Retoucheerstijl Retro Brown 01 , Retro Bruin 01 Retro Summer 3 , Retro Zomer 3 Retro Yellow 01 , Retro Geel 01 Return Scaling , Terugkeer Schalen Reverse Bits , Omgekeerde Bits Reverse Bytes , Omgekeerde bytes Reverse Effect , Omgekeerd effect Reverse Endianness , Omgekeerde eindigheid Reverse Flip , Omgekeerde beweging Reverse Frame Stack , Omgekeerde Frame Stack Reverse Gradient , Omgekeerde helling Reverse Mod , Omgekeerde Modus Reverse Motion , Omgekeerde beweging Reverse Order , Omgekeerde volgorde Reverse Pow , Omgekeerd vermogen Reversing , Omkeren Revert Layer Order , Omgekeerde volgorde van de lagen Revert Layers , Omgekeerde lagen RGB [All] , RGB [Allemaal] RGB [Blue] , RGB [Blauw] RGB [Green] , RGB [Groen] RGB [red] , RGB [rood] RGB Image + Binary Mask (2 Layers) , RGB-beeld + binair masker (2 lagen) RGB Quantization , RGB-kwantisering RGB Tone , RGB-toon RGBA [All] , RGBA [Alle] RGBA Foreground + Background (2 Layers) , RGBA Voorgrond + Achtergrond (2 lagen) RGBA Image (Full-Transparency / 1 Layer) , RGBA-beeld (volledige transparantie / 1 laag) RGBA Image (Updatable / 1 Layer) , RGBA-beeld (bij te werken / 1 laag) Rice , Rijst Right , Rechts Right Diagonal Foreground , Rechts Diagonale voorgrond Right Diagonal Foreground , Rechts Diagonale voorgrond Right Eye View , Rechter oogaanzicht Right Foreground , Voorgrond Right Position , Juiste positie Right Side Orientation , Rechtse oriëntatie Right Slope , Rechtse helling Right Stream Only , Alleen rechtse stroom Rigid , Stijve Ripple , Rimpeling Roddy (by Mahvin) , Roddy (door Mahvin) Rodilius [Animated] , Rodilius [Geanimeerd] Rollei Retro 100 Tonal , Rollei Retro 100 tonaal Rooster , Haan Rotate , Roteer Rotate (muted) , Draaien (gedempt) Rotate (vibrant) , Draaien (levendig) Rotate 180 Deg. , Draai 180 Deg. Rotate 270 Deg. , Draai 270 Deg. Rotate 90 Deg. , Draai 90 Deg. Rotate Hue Bands , Tint banden draaien Rotate Tree , Boom draaien Rotated , Gedraaide Rotated (crush) , Gedraaide (verbrijzeling) Rotations , Rotaties Round , Ronde Roundness , Rondheid Row by Row , Rij voor rij RYB [All] , RYB [Allemaal] RYB [Blue] , RYB [Blauw] RYB [Red] , RYB [Rood] RYB [Yellow] , RYB [Geel] Salt and Pepper , Zout en peper Same as Input , Hetzelfde als de invoer Same Axis , Dezelfde As Sample Image , Voorbeeldbeeld Sampling , Bemonstering Sat Range , Zittende waaier Satin , Satijn Saturated Blue , Verzadigd blauw Saturation , Verzadiging Saturation (%) , Verzadiging (%) Saturation Channel Gamma , Verzadiging Kanaal Gamma Saturation Correction , Verzadigingscorrectie Saturation EQ , Verzadiging EQ Saturation Factor , Verzadigingsfactor Saturation Offset , Verzadiging Compensatie Saturation Shift , Verzadigingsverschuiving Saturation Smoothness , Verzadiging Gladheid Save CLUT as .Cube or .Png File , CLUT opslaan als .Cube of .Png-bestand Save Gradient As , Bewaar Gradiënt als Saving Private Damon , Besparing van privé-Damon Scalar , Scalaire Scale , Schaal Scale (%) , Schaal (%) Scale 1 , Schaal 1 Scale 2 , Schaal 2 Scale CMYK , Schaal CMYK Scale Factor , Schaalfactor Scale Output , Schaaluitgang Scale Plasma , Schaalplasma Scale RGB , Schaal RGB Scale Style to Fit Target Resolution , Schaalstijl om te passen bij de doelresolutie Scale Variations , Schaalvariaties Scaled , Geschaald Scales , Schalen Scaling Factor , Schaalfactor Scene Selector , Scènekiezer Screen , Scherm Screen Border , Schermgrens Seamcarve , Naadsnijden Seamless Deco , Naadloze Deco Seamless Turbulence , Naadloze Turbulentie Second Color , Tweede kleur Second Offset , Tweede Compensatie Second Radius , Tweede straal Second Size , Tweede Maat Secondary Color , Secundaire kleur Secondary Factor , Secundaire factor Secondary Gamma , Secundair Gamma Secondary Radius , Secundaire Straal Secondary Shift , Secundaire Verschuiving Secondary Twist , Secundaire Twist Sectors , Sectoren Seed , Zaad Segment Max Length (px) , Segment Maximale lengte (px) Segmentation , Segmentatie Segmentation Edge Threshold , Segmentatie Randdrempel Segmentation Smoothness , Segmentatie Gladheid Segments , Segmenten Segments Strength , Segmenten Sterkte Select By , Selecteer door Select-Replace Color , Selecteer-Vervang Kleur Selected Color , Geselecteerde kleur Selected Colors , Geselecteerde kleuren Selected Frame , Geselecteerd frame Selected Mask , Geselecteerde masker Selection , Selectie Selective Desaturation , Selectieve Desaturatie Selective Gaussian , Selectief Gaussisch Self , Zelf Self Glitching , Zelfstotend Self Image , Zelfbeeld Sensitivity , Gevoeligheid Sequence X4 , Volgorde X4 Sequence X6 , Volgorde X6 Sequence X8 , Volgorde X8 Serenity , Sereniteit Serial Number , Serienummer Serpent , Slang Set Aspect Only , Alleen het aspect instellen Set Frame Format , Stel het frameformaat in Seven Layers , Zeven lagen Seventies Magazine , Tijdschrift voor de jaren zeventig Shade , Schaduw Shade Angle , Schaduwhoek Shade Back to First Color , Schaduw Terug naar Eerste Kleur Shade Bobs , Schaduw Bobs Shade Strength , Schaduwsterkte Shading , Schaduwing Shading (%) , Schaduw (%) Shadow , Schaduw Shadow Contrast , Schaduwcontrast Shadow Intensity , Schaduwintensiteit Shadow King 39 , Schaduwkoning 39 Shadow Offset X , Schaduwcompensatie X Shadow Offset Y , Schaduwcompensatie Y Shadow Patch , Schaduwflard Shadow Size , Schaduwgrootte Shadow Smoothness , Schaduw Gladheid Shadows , Schaduwen Shadows Abstraction , Schaduw Abstractie Shadows Brightness , Schaduwen Helderheid Shadows Color Intensity , Schaduwkleurintensiteit Shadows Hue Shift , Schaduwtint verschuiving Shadows Lightness , Schaduwen Lichtheid Shadows Selection , Schaduw selectie Shadows Threshold , Schaduwdrempel Shadows Zone , Schaduwzone Shape , Vorm Shape Area Max , Vormgebied Max. Shape Area Max0 , Vormgebied Max0 Shape Area Min , Vormgebied Min Shape Area Min0 , Vormgebied Min0 Shape Average , Vorm Gemiddelde Shape Average0 , Vorm Gemiddelde0 Shape Max , Vorm Max. Shape Max0 , Vorm Max0 Shape Median , Vorm Mediaan Shape Median0 , Vorm Mediaan0 Shape Min , Vorm Min Shape Min0 , Vorm Min0 Shapeaverage , Vormgeving Shapeism , Vormgeving Shapes , Vormen Sharp Abstract , Scherp Abstract Sharpen , Scherpte Sharpen [Deblur] , Scherp [Deblur] Sharpen [Gold-Meinel] , Scherp [Gold-Meinel] Sharpen [Gradient] , Verscherpen [Gradiënt] Sharpen [Hessian] , Scherp [Hessian] Sharpen [Inverse Diffusion] , Scherp [Inverse Diffusion] Sharpen [Multiscale] , Scherp [Multiscale] Sharpen [Octave Sharpening] , Slijpen [Octaafslijpen] Sharpen [Richardson-Lucy] , Scherp [Richardson-Lucy] Sharpen [Shock Filters] , Scherp [Schokfilters] Sharpen [Texture] , Scherp [Textuur] Sharpen [Tones] , Scherp [Tonen] Sharpen [Unsharp Mask] , Scherp [Unsharp Mask] Sharpen [Whiten] , Scherp [Whiten] Sharpen Details in Preview , Details verscherpen in Voorvertoning Sharpen Edges Only , Alleen de randen slijpen Sharpen Object , Voorwerp slijpen Sharpen Radius , Straal slijpen Sharpen Shades , Scherpere tinten Sharpened Areas Only , Alleen geslepen gebieden Sharpening , Aanscherping Sharpening Layer , Aanscherpingslaag Sharpening Radius , Slijpstraal Sharpening Strength , Aanscherpende kracht Sharpening Type , Aanscherpingstype Sharpest , Scherpste Sharpness , Scherpte Shift Linear Interpolation? , Shift Lineaire Interpolatie? Shift Point , Verschuivingspunt Shift X , Verschuiving X Shift Y , Verschuiving Y Shininess , Glanzigheid Shivers , Rillingen Shock Waves , Schokgolven Shopping Cart , Winkelwagen Show Both Poles , Toon beide polen Show Difference , Verschil tonen Show Frame , Toon Frame Show Grid , Toon rooster Show Watershed , Toon Waterschuur Shrink , Krimp Shuffle Pieces , Shuffle Stukken Side by Side , Zij aan zij Sierpinksi Design , Sierpinksi Ontwerp Sierpinski Triangle , Sierpinski Driehoek Silver , Zilver Similarity Space , Gelijkaardigheid Ruimte Simple Local Contrast , Eenvoudig lokaal contrast Simple Noise Canvas , Eenvoudig geluidsdoek Simulate Film , Film simuleren Sin(z) , Zonde(z) Sine , Sinus Sine+ , Sinus+ Single (Merged) , Enkelvoudig (samengevoegd) Single Custom Depth Map , Enkele aangepaste dieptekaart Single Image Stereogram , Enkele afbeelding Stereogram Single Layer , Enkele laag Single Opaque Shapes Over Transp. BG , Enkelvoudige Ondoorzichtige Vormen Over Transp. BG Six Layers , Zes lagen Sixteen Threads , Zestien Draden Size , Grootte Size (%) , Grootte (%) Size for Bright Tones , Grootte voor Heldere Tinten Size for Dark Tones , Grootte voor Donkere Tinten Size of Frame Numbers (%) , Grootte van de framenaantallen (%) Size Variance , Groottevariatie Size-1 , Grootte-1 Size-2 , Grootte-2 Size-3 , Grootte-3 Skeleton , Skelet Sketch , Schets Skin Estimation , Huidschatting Skin Mask , Huidmasker Skin Tone Colors , Huidskleurige kleuren Skin Tone Mask , Huidtonenmasker Skin Tone Protection , Huidtoonbescherming Skip All Other Steps , Alle andere stappen overslaan Skip Finest Scales , Fijnste schalen overslaan Skip Others Steps , Andere stappen overslaan Skip This Step , Deze stap overslaan Skip to Use the Mask to Boost , Ga naar het masker te gebruiken om te verhogen Slide [Color] (26) , Dia [Kleur] (26) Slow (Accurate) , Langzaam ( Nauwkeurig ) Slow Recovery , Langzaam herstel Small , Kleine Small (Faster) , Klein (Sneller) Smart , Slimme Smart Contrast , Slim contrast Smart Threshold , Slimme drempel Smooth , Vloeiend Smooth [Anisotropic] , Glad [Anisotroop] Smooth [Bilateral] , Glad [Bilateraal] Smooth [Block PCA] , Glad [Blok PCA] Smooth [Diffusion] , Gladde [Verspreiding] Smooth [Geometric-Median] , Glad [Geometrisch-Medisch] Smooth [Guided] , Glad [Geleid] Smooth [IUWT] , Vloeiend [IUWT] Smooth [Mean-Curvature] , Gladjes [Gemiddelde kromming] Smooth [Median] , Smooth [Mediaan] Smooth [NL-Means] , Vloeiend [NL-Means] Smooth [Patch-Based] , Glad [Patch-Based] Smooth [Patch-PCA] , Glad [Patch-PCA] Smooth [Perona-Malik] , Glad [Perona-Malik] Smooth [Selective Gaussian] , Vloeiend [Selectief Gaussisch] Smooth [Skin] , Gladde [Huid] Smooth [Thin Brush] , Gladde [Dunne borstel] Smooth [Total Variation] , Glad [Totale variatie] Smooth [Wavelets] , Gladde [Wavelets] Smooth [Wiener] , Glad [Wiener] Smooth Abstract , Vloeiend Abstract Smooth Amount , Gladde hoeveelheid Smooth Clear , Gladjes Duidelijk Smooth Colors , Gladde kleuren Smooth Crome-Ish , Gladde Crome-Ish Smooth Dark , Gladde Donker Smooth Fade , Gladde vervaging Smooth Green Orange , Gladde groene sinaasappel Smooth Light , Glad licht Smooth Looping , Gladde Looping Smooth Only , Alleen gladjes Smooth Sailing , Vloeiend Varen Smooth Teal Orange , Gladde Teal Oranje Smoothen Background Reconstruction , Achtergrond Reconstructie gladstrijken Smoother Edge Protection , Gladdere randbescherming Smoother Sharpness , Gladder Scherpte Smoother Softness , Gladder Zachtheid Smoothing , Het gladstrijken van Smoothing Style , Het gladstrijken van Stijl Smoothing Type , Het gladmaken van Type Smoothness , Gladheid Smoothness (%) , Gladheid (%) Smoothness (px) , Gladheid (px) Smoothness Shadow , Gladheid Schaduw Smoothness Type , Gladheid Type Snowflake , Sneeuwvlokje Snowflake 2 , Sneeuwvlokje 2 Snowflake Recursion , Sneeuwvlokje Recursie Soft , Zacht Soft Light , Zacht licht Soft Burn , Zachte verbranding Soft Dodge , Zachte Dodge Soft Fade , Zachte vervaging Soft Glow , Zachte gloed Soft Glow [Animated] , Zachte gloed [Geanimeerd] Soft Light , Zacht licht Soft Random Shades , Zachte Willekeurige Tinten Soft Warming , Zachte Verwarming Soften , Verzacht Soften All Channels , Alle kanalen verzachten Soften Guide , Verzacht Gids Solarize , Solariseren Solarize Color , Solariseren van de kleur Solidify , Verstevigen Solve Maze , Doolhof oplossen Some , Enkele Some Blue , Wat Blauw Some Cyan , Een beetje cyaan Some Green , Een beetje groen Some Key , Wat Sleutel Some Magenta , Sommige Magenta Some Red , Een beetje rood Some Yellow , Wat Geel Sort Colors , Sorteer Kleuren Sorting Criterion , Sorteercriteria Source (%) , Bron (%) Source Color #1 , Bronkleur #1 Source Color #10 , Bronkleur #10 Source Color #11 , Bronkleur #11 Source Color #12 , Bronkleur #12 Source Color #13 , Bronkleur #13 Source Color #14 , Bronkleur #14 Source Color #15 , Bronkleur #15 Source Color #16 , Bronkleur #16 Source Color #17 , Bronkleur #17 Source Color #18 , Bronkleur #18 Source Color #19 , Bronkleur #19 Source Color #2 , Bronkleur #2 Source Color #20 , Bronkleur #20 Source Color #21 , Bronkleur #21 Source Color #22 , Bronkleur #22 Source Color #23 , Bronkleur #23 Source Color #24 , Bronkleur #24 Source Color #3 , Bronkleur #3 Source Color #4 , Bronkleur #4 Source Color #5 , Bronkleur #5 Source Color #6 , Bronkleur #6 Source Color #7 , Bronkleur #7 Source Color #8 , Bronkleur #8 Source Color #9 , Bronkleur #9 Source X-Tiles , Bron X-Tegels Source Y-Tiles , Bron Y-Tegels Space , Ruimte Spacing , Afstand Span , Spanwijdte Spatial Bandwidth , Ruimtelijke bandbreedte Spatial Metric , Ruimtelijk Metrisch Spatial Overlap , Ruimtelijke overlapping Spatial Precision , Ruimtelijke precisie Spatial Radius , Ruimtelijke Straal Spatial Regularization , Ruimtelijke regularisatie Spatial Sampling , Ruimtelijke bemonstering Spatial Scale , Ruimtelijke schaal Spatial Tolerance , Ruimtelijke tolerantie Spatial Transition , Ruimtelijke Overgang Spatial Variance , Ruimtelijke variatie Special Effects , Speciale effecten Specific Saturation , Specifieke verzadiging Specify Different Output Size , Specificeer Verschillende Uitgangsgrootte Specify HaldCLUT As , Geef HaldCLUT op als Specular , Specifiek Specular (%) , Specifiek (%) Specular Centering , Specifiek centreren Specular Intensity , Speculatieve intensiteit Specular Light , Specifiek licht Specular Lightness , Speculatieve lichtheid Specular Shininess , Speculatieve Glanzigheid Specular Size , Specifiek formaat Speed , Snelheid Sphere , Bol Spiral , Spiraal Spiral RGB , Spiraalvormige RGB Spline Max Angle (deg) , Spline Max Hoek (deg) Spline Max Length (px) , Spline Max Lengte (px) Spline Roundness , Spline Rondheid Split Base and Detail Output , Gesplitste basis en detailuitgang Split Brightness / Colors , Split Helderheid / Kleuren Split Details [Alpha] , Gesplitste details [Alpha] Split Details [Gaussian] , Gesplitste details [Gaussian] Split Details [Wavelets] , Gesplitste details [Wavelets] Sponge , Spons Spread , Verspreiden Spread Amount , Gespreid bedrag Spread Angles , Verspreidingshoeken Spread Noise Amount , Gespreid geluidsbedrag Spreading , Verspreiding Spring Morning , Lentemorgen Sprocket 231 , Tandwiel 231 Spy 29 , Spioneren 29 Square , Vierkant Square (Inv.) , Vierkant (Inv.) Square 1 , Vierkant 1 Square 2 , Vierkant 2 Square to Circle , Vierkant naar Cirkel Squares , Pleinen Squares (Outline) , Vierkanten (Overzicht) SRGB Conversion , SRGB-omzetting Stabilizer , Stabilisator Stained Glass , Gebrandschilderd glas Stamp , Stempel Standard , Standaard Standard (256) , Standaard (256) Standard [No Scan] , Standaard [Geen scan] Standard Deviation , Standaardafwijking Star , Ster Star: -5*(z^3/3-Z/4)/2 , Ster: -5*(z^3/3-Z/4)/2 Stars , Sterren Stars (Outline) , Sterren (overzicht) Start Angle , Starthoek Start Color , Startkleur Start Frame Number , Startframenummer Start of Mid-Tones , Begin van de Mid-Tones Starting Angle , Starthoek Starting Color , Beginnende kleur Starting Feathering , Starten met veren Starting Frame , Startframe Starting Level , Beginnend niveau Starting Pattern , Startpatroon Starting Point , Uitgangspunt Starting Point (%) , Uitgangspunt (%) Starting Scale (%) , Beginschaal (%) Starting Value , Beginwaarde Stationary Frames , Stationaire Frames Std Angle (deg.) , Std Hoek (deg.) Std Branching , Std Vertakking Std Length Factor (%) , Std Lengte Factor (%) Std Thickness Factor (%) , Std-diktefactor (%) Stencil Type , Sjabloontype Step , Stap Step (%) , Stap (%) Steps , Stappen Stereo Image , Stereobeeld Stereo Window Position , Stereo Venster Positie Stereographic Projection , Stereografische projectie Stereoscopic Image Alignment , Stereoscopische beelduitlijning Stereoscopic Window Position , Stereoscopische vensterpositie Straight , Rechtstreeks Street , Straat Strength , Sterkte Strength (%) , Sterkte (%) Strength Effect , Sterkte-effect Strength Highlights , Sterkte Highlights Strength Midtones , Kracht Midtonen Strength Shadows , Kracht Schaduwen Stretch , Rekken Stretch Colors , Stretch Kleuren Stretch Contrast , Rekcontrast Stretch Factor , Stretchfactor Stripe Orientation , Streep Oriëntatie Stroke , Slag Stroke Angle , Slaghoek Stroke Length , Slaglengte Stroke Strength , Slagkracht Strong , Sterke Structure Smoothness , Structuur Gladheid Style , Stijl Style Variations , Stijlvariaties Subdivisions , Onderverdelingen Subpixel Interpolation , Subpixelinterpolatie Subpixel Level , Subpixelniveau Subsampling (%) , Subbemonstering (%) Subtle Blue , Subtiel blauw Subtle Green , Subtiel groen Subtle Yellow , Subtiel Geel Subtract , Aftrekken Subtractive , Subtractief Summer , Zomer Summer (alt) , Zomer (alt) Sunny , Zonnig Sunny (alt) , Zonnig (alt) Sunny (rich) , Zonnig (rijk) Sunny (warm) , Zonnig (warm) Super Warm (rich) , Super Warm (rijk) Superformula , Superformule Superimpose with Original? , Overstelpen met Origineel? Surface Disturbance , Oppervlakteverstoring Surface Disturbance Multiplier , Oppervlakteverstoring Vermenigvuldiger Swan , Zwaan Swap Colors , Swap Kleuren Swap Layers , Swap Lagen Swap Radius / Angle , Swap Radius / Hoek Swap Sides , Swap Kanten Sweet Bubblegum , Zoete Bubblegum Sweet Gelatto , Zoete gelatoeage Symmetric 2D Shape , Symmetrische 2D-vorm Symmetrize , Symmetrie Symmetry , Symmetrie Symmetry Sides , Symmetrie zijden Synthesis Scale , Syntheseschaal Tangent Radius , Raaklijnstraal Target Color #1 , Doelwitkleur #1 Target Color #10 , Doelwitkleur #10 Target Color #11 , Doelwitkleur #11 Target Color #12 , Doelwitkleur #12 Target Color #13 , Doelwitkleur #13 Target Color #14 , Doelwitkleur #14 Target Color #15 , Doelwitkleur #15 Target Color #16 , Doelwitkleur #16 Target Color #17 , Doelwitkleur #17 Target Color #18 , Doelwitkleur #18 Target Color #19 , Doelwitkleur #19 Target Color #2 , Doelwitkleur #2 Target Color #20 , Doelwitkleur #20 Target Color #21 , Doelwitkleur #21 Target Color #22 , Doelwitkleur #22 Target Color #23 , Doelwitkleur #23 Target Color #24 , Doelwitkleur #24 Target Color #3 , Doelwitkleur #3 Target Color #4 , Doelwitkleur #4 Target Color #5 , Doelwitkleur #5 Target Color #6 , Doelwitkleur #6 Target Color #7 , Doelwitkleur #7 Target Color #8 , Doelwitkleur #8 Target Color #9 , Doelwitkleur #9 Teal Magenta Gold , Teal Magenta Goud Teal Orange , Teal Oranje Teal Orange 1 , Teal Oranje 1 Teal Orange 2 , Teal Oranje 2 Teal Orange 3 , Teal Oranje 3 TechnicalFX - Backlight Filter , TechnicalFX - Achtergrondverlichtingsfilter Temperature Balance , Temperatuursaldo Ten Layers , Tien lagen Tends to Be Square , De neiging om vierkant te zijn Tension Green 1 , Spanning Groen 1 Tension Green 2 , Spanning Groen 2 Tension Green 3 , Spanning Groen 3 Tension Green 4 , Spanning Groen 4 Tensor Smoothness , Tensor Gladheid Tertiary Factor , Tertiaire factor Tertiary Gamma , Tertiair Gamma Tertiary Shift , Tertiaire verschuiving Tertiary Twist , Tertiaire Twist Text , Tekst Texture , Textuur Texture Enhance , Textuurverbetering Textured Glass , Getextureerd glas The Game of Life , Het spel van het leven The Matrices , De Matrices Thickness , Dikte Thickness (%) , Dikte (%) Thickness (px) , Dikte (px) Thickness Factor , Diktefactor Thin Edges , Dunne randen Thin Separators , Dunne separatoren Thinness , Dunheid Thinning , Verdunning Thinning (Slow) , Uitdunnen (Langzaam) Three Layers , Drie lagen Threshold , Drempelwaarde Threshold (%) , Drempel (%) Threshold Etch , Drempelwaarde-etch Threshold High , Drempelwaarde hoog Threshold Low , Drempel Laag Threshold Max , Drempel Max. Threshold Mid , Drempelwaarde Midden Threshold On , Drempelwaarde op Thumbnail Size , Miniatuurafmeting Tiger , Tijger Tile Poles , Tegelpalen Tile Size , Tegelgrootte Tileable Rotation , Tegelvormige rotatie Tiled Isolation , Betegelde Isolatie Tiled Normalization , Betegelde Normalisatie Tiled Parameterization , Betegelde parametrering Tiled Preview , Betegelde preview Tiled Random Shifts , Betegelde willekeurige verschuivingen Tiled Rotation , Betegelde rotatie Tiles , Tegels Tiles to Layers , Tegels naar lagen Tilt , Kantelen Time , Tijd Time Step , Tijd Stap Timed Image , Getimede afbeelding Tiny , Kleine To Equirectangular , Naar Equirectangular To Nadir / Zenith , Naar Nadir / Zenith Toasted Garden , Geroosterde Tuin Toggle to View Base Image , Omschakelen naar de basisafbeelding Tolerance , Tolerantie Tolerance to Gaps , Tolerantie voor gaten Tonal Bandwidth , Tonale bandbreedte Tone Blur , Toonvervaging Tone Enhance , Toonvergroting Tone Gamma , Toon gamma Tone Mapping , Toonkaarten Tone Mapping (%) , Toonhoogtebepaling (%) Tone Mapping [Fast] , Toonkaarten [Snel] Tone Mapping Fast , Toonkaarten snel Tone Mapping Soft , Toonhoogte Zacht Tone Presets , Toon Toon Toonregeling Tone Threshold , Toongrens Tones Range , Toonbereik Tones Smoothness , Tonen Gladheid Tones to Layers , Tonen naar lagen Top Layer , Bovenste laag Top Left , Linksboven Top Right , Rechtsboven Top-Right Vertex (%) , Top-rechtse hoek (%) Total Layers , Totaal aantal lagen Total Variation , Totale variatie Transfer Colors [Histogram] , Overdrachtskleuren [Histogram] Transfer Colors [Patch-Based] , Overdrachtskleuren [Patch-Based] Transfer Colors [PCA] , Overdrachtskleuren [PCA] Transfer Colors [Variational] , Overdrachtskleuren [Variant] Transform , Transformeer Transition Map , Overgangskaart Transition Shape , Overgangsvorm Transition Smoothness , Overgangssoepelheid Transmittance Map , Overdrachtskaart Transparency , Transparantie Transparent , Transparant Transparent Background , Transparante achtergrond Transparent Black & White , Transparant zwart-wit Transparent Color , Transparante kleur Transparent on Black , Transparant op zwart Transparent on White , Transparant op Wit Transparent Skin , Transparante huid Tree , Boom Triangle , Driehoek Triangles , Driehoeken Triangles (Outline) , Driehoeken (overzicht) Triangular Ha , Driehoekige Ha Triangular Hb , Driehoekig Hb Triangular Va , Driehoekige Va Triangular Vb , Driehoekig Vb Tritanomaly , Tritanomalie True Colors 8 , Ware kleuren 8 Trunk Color , Boomstamkleur Trunk Opacity (%) , Boomstamopaciteit (%) Trunks , Koffers Tulips , Tulpen Turbulence , Turbulentie Turbulence 2 , Turbulentie 2 Turbulent Halftone , Turbulente Halftoon Turn on Rotate and Twirl , Aanzetten Draaien en Twirlennen Twisted Rays , Gedraaide stralen Two Layers , Twee lagen Two Threads , Twee draden Two-By-Two , Twee-bij-twee Type Snowflake , Type Sneeuwvlokje Unaligned Images , Onafgestemde beelden Undeniable , Onmiskenbaar Undeniable 2 , Onmiskenbaar 2 Underwater , Onderwater Undo Anaglyph , Anaglyph ongedaan maken Unknown , Onbekend Unpurple , Onzuivere Unsharp Mask , Onscherp Masker Untwist , Ontwijken Up-Left , Up-Links Up-Right , Rechtsboven Upper Layer Is the Top Layer for All Blends , Bovenste laag is de bovenste laag voor alle mengsels Upper Side Orientation , Bovenzijde Oriëntatie Uppercase Letters , Hoofdletters Upscale [Diffusion] , Upscale [Verspreiding] Urban Cowboy , Stedelijke Cowboy Use as Hue , Gebruik als Tint Use as Saturation , Gebruik als verzadiging Use Individual Depth Map , Gebruik de individuele dieptekaart Use Light , Gebruikslicht Use Maximum Tones , Gebruik Maximale Tonen Use Top Layer as a Priority Mask , Gebruik de bovenste laag als een prioritair masker User-Defined , Door de gebruiker gedefinieerd User-Defined (Bottom Layer) , Door de gebruiker gedefinieerd (bodemlaag) Uzbek Bukhara , Oezbeekse Bukhara Uzbek Marriage , Oezbeeks Huwelijk Uzbek Samarcande , Oezbeekse Samarcande Val Range , Val Val range Value , Waarde Value Action , Waarde Actie Value Blending , Waarde mengen Value Bottom , Waarde Bodem Value Correction , Waardecorrectie Value Factor , Waardefactor Value Normalization , Waarde Normalisatie Value Offset , Waardecorrectie Value Precision , Waarde Precisie Value Range , Waardebereik Value Scale , Waardeschaal Value Shift , Waardeverschuiving Value Smoothness , Waarde Gladheid Value Top , Waarde Top Value Variance , Waardevariatie Values , Waarden Van Gogh: Almond Blossom , Van Gogh: Amandelbloesem Van Gogh: Irises , Van Gogh: Irissen Van Gogh: The Starry Night , Van Gogh: De sterrennacht Van Gogh: Wheat Field with Crows , Van Gogh: Korenveld met kraaien Variability , Variabiliteit Variance , Variant Variation A , Variatie A Variation B , Variatie B Variation C , Variatie C Vector Painting , Vector Schilderen Velocity , Snelheid Vertex Type , Hoekpunt Type Vertical , Verticaal Vertical (%) , Verticaal (%) Vertical 1 Amount , Verticaal 1 Bedrag Vertical 1 Length , Verticaal 1 Lengte Vertical 2 Amount , Verticaal 2 Bedrag Vertical 2 Length , Verticaal 2 Lengte Vertical Amount , Verticaal Bedrag Vertical Array , Verticale Serie Vertical Blur , Verticale vervaging Vertical Length , Verticale lengte Vertical Size (%) , Verticale grootte (%) Vertical Stripes , Verticale strepen Vertical Tiles , Verticale tegels Very Course 5 , Zeer Cursus 5 Very Fine , Zeer Fijn Very High , Zeer hoog Very High (Even Slower) , Zeer hoog (zelfs langzamer) Very Warm Greenish , Zeer warm groenachtig Vibrant , Levendige Vibrant (alien) , Levendig (vreemdeling) Vibrant (contrast) , Levendig (contrast) Vibrant (crome-Ish) , Levendig (crome-Ish) Victory , Overwinning View Outlines Only , Alleen hoofdlijnen bekijken View Resolution , Bekijk de resolutie Vignette , Vignet Vignette Contrast , Vignetcontrast Vignette Max Radius , Vignet Max Radius Vignette Min Radius , Vignet Min Radius Vignette Size , Vignetgrootte Vignette Strength , Vignetsterkte Vignette Strenth , Vignet Strenth Vintage (brighter) , Vintage (helderder) Vintage Chrome , Vintage Chroom Vintage Style , Vintage Stijl Vintage Warmth 1 , Vintage Warmte 1 Virtual Landscape , Virtueel landschap Visible Watermark , Zichtbaar watermerk Vivid Edges , Levendige randen Vivid Edges* , Levendige randen* Vivid Light , Levendig licht Vivid Screen , Levendig scherm Wall , Muur Warm (highlight) , Warm (hoogtepunt) Warm (yellow) , Warm (geel) Warm Dark Contrasty , Warme donkere contrasten Warm Fade , Warme Fade Warm Fade 1 , Warme Fade 1 Warm Neutral , Warm Neutraal Warm Sunset Red , Warme zonsondergang rood Warm Teal , Warm Wintertaling Warm Vintage , Warme Vintage Warp [Interactive] , Warp [Interactief] Warp by Intensity , Scheeftrekking door intensiteit Waterfall , Waterval Wave , Golfen Wave(s) , Golf(en) Wavelength , Golflengte Waves Amplitude , Golven Amplitude Waves Smoothness , Golven Gladheid We'll See , We zullen zien. Weave , Weven Weird , Vreemd Whirl Drawing , Wervelende tekening White , Wit White Dices , Witte dobbelstenen White Layers , Witte lagen White Level , Wit niveau White on Black , Wit op zwart White on Transparent , Wit op Transparant White on Transparent Black , Wit op Transparant Zwart White Point , Witte punt White to Black , Wit tot zwart White Walls , Witte muren Whiter Whites , Witten Whites , Blanken Width , Breedte Width (%) , Breedte (%) Winter Lighthouse , Wintervuurtoren Wipe , Veeg Wiremap , Draadkaart Without , Zonder Wooden Gold 20 , Houten Goud 20 Work on Frameset , Werken aan Frameset Wrap , Wikkel X Center , X Centrum X-Axis Then Y-Axis , X-Axis Dan Y-Axis X-Coordinate [Manual] , X-Coordinate [Handleiding] X-Dispersion , X-Dispersie X-Ratio , X-verhouding X-Rotation , X-Rotatie X-Scale , X-Schaal X-Variations , X-Variaties X/Y-Ratio , X/Y-verhouding X1 (none) , X1 (geen) Xor , Xof XY Mirror , XY Spiegel XY-Coordinates (%) , XY-Coordinaten (%) Y Center , Y-Centrum Y-Axis Then X-Axis , Y-Axis Dan X-Axis Y-Coordinate [Manual] , Y-Coordinate [Handleiding] Y-Dispersion , Y-Dispersie Y-Ratio , Y-verhouding Y-Rotation , Y-Rotatie Y-Scale , Y-Schaal Y-Variations , Y-variaties YAG Effect , YAG-effect YCbCr (Chroma Only) , YCbCr (alleen Chroma) YCbCr (Distinct) , YCbCr (Onderscheiden) YCbCr (Luma Only) , YCbCr (alleen Luma) YCbCr (Mixed) , YCbCr (Gemengd) YCbCr [Luminance] , YCbCr [Luminantie] Yellow , Geel Yellow 55B , Geel 55B Yellow Factor , Gele factor Yellow Film 01 , Gele film 01 Yellow Shift , Gele Verschuiving Yellow Smoothness , Geel Gladheid YES8 , JA8 You Can Do It , Je kunt het doen. Z-Angle , Z-Angel Z-Rotation , Z-Rotatie Z-Scale , Z-Schaal Z^^6 + Z^^3 - 1 , Z^^6 + Z^3 - 1 Z^^8 + 15*z^^4 - 1 , Z^8 + 15*z^4 - 1 Zero , Nul ZilverFX - B&W Solarization , ZilverFX - Zonne-energie in zwart-wit ZilverFX - InfraRed , ZilverFX - Infrarood ZilverFX - Vintage B&W , ZilverFX - Vintage Z&W Zone System , Zone-systeem Zoom , Zoomen Zoom Center , Zoom Zoom Centrum Zoom Factor , Zoomfactor Zoom In , Inzoomen Zoom Out , Uitzoomen ================================================ FILE: translations/filters/gmic_qt_pl.csv ================================================ Arrays & Tiles , Tablice i płytki Artistic , Artystyczny Black & White , Black & White Colors , Kolory Contours , Kontury Deformations , Deformacje Degradations , Degradacja Details , Szczegóły Testing , Testowanie Frames , Ramki Frequencies , Częstotliwości Layers , Warstwy Lights & Shadows , Światła i cienie Patterns , Wzory Rendering , Rendering Repair , Naprawa Sequences , Sekwencje Silhouettes , Sylwetki Icons , Ikony Misc , Misc Nature , Przyroda Others , Inni Stereoscopic 3D , Stereoskopowy 3D *Vivid Edges* , *Widome krawędzie* - NO - , - NIE - -1. Value Action , -1. Wartość Działania -2. Overall Channel(s) , -2. Ogólny kanał(y) -3. Normalisation Channel(s) , -3. Kanał (kanały) normalizacji -4. Normalise , -4. Normalizacja . 0. Recompute , 0. Obliczyć . 1 Levels , 1 Poziomy 1. Plasma Texture [Discards Input Image] , 1. Tekstura plazmowa [Obraz wejściowy odrzucany] 10. Quadtree Max Precision , 10. Quadtree Max Precision 10th , 10. 10th Color , 10. kolor 11. Quadtree Min Homogeneity , 11. Quadtree Min Homogeneity 11th , 11. 12 Colors , 12 kolorów 12 Grays , 12 Szarości 12. Quadtree Max Homogeneity , 12. Quadtree Max Homogeneity 125 Keypoints , 125 Punkty orientacyjne 12th , 12. 13. Noise Type , 13. Rodzaj hałasu 13th , 13. 14. Minimum Noise , 14. Minimalny hałas 14th , 14. 15. Maximum Noise , 15. Maksymalny hałas 15th , 15. 16 Colors , 16 Kolory 16 Grays , 16 Szarości 16. Noise Channel(s) , 16. Kanał(y) Hałasowy(e) 16th , 16. 17. Warp Iterations , 17. Iteracje osnowy 18. Warp Intensity , 18. Osnowa Intensywność 180 Deg. , 180 stopni. 19. Warp Offset , 19. Przesunięcie warp 1st , 1. 1st Additional Palette (.Gpl) , 1. dodatkowa paleta (.Gpl) 1st Color , 1. kolor 1st Parameter , 1. parametr 1st Text , 1. tekst 1st Tone , 1 tonacja 1st Variance , 1 Variance 1st X-Coord , 1. przewód X-Coord 1st Y-Coord , 1-szy Y-Coord 2 Colors , 2 Kolory 2 Grays , 2 Szarości 2 Noise , 2 Hałas 2-Strip Process , Proces 2-krotny 2. Plasma Scale , 2. Skala plazmowa 20. Scale to Width , 20. Skala do szerokości 21. Scale to Height , 21. Skala do wysokości 22. Correlated Channels , 22. Kanały powiązane 22.5 Deg. , 22,5 Deg. 23. Boundary , 23. Granica 24. Warp Channel(s) , 24. Kanał(y) Warp 25. Random Negation , 25. Losowa negacja 26. Random Negation Channel(s) , 26. Kanał (kanały) losowej negacji 29. Normalise , 29. Normalizacja 2nd , 2. 2nd Additional Palette (.Gpl) , 2. dodatkowa paleta (.Gpl) 2nd Color , 2. kolor 2nd Parameter , 2. parametr 2nd Text , 2. tekst 2nd Tone , 2. tonacja 2nd Variance , 2. wariancja 2nd X-Coord , 2. przewód X-Coord 2nd Y-Coord , 2. przewód Y-Coord 2x Type , 2x Typ 2XY Mirror , 2XY Lustro 3 Colors , 3 Kolory 3 Grays , 3 Szarości 3 Mix , 3 Mieszanka 3. Plasma Alpha Channel , 3. Kanał Plazmowy Alfa 30. Minimum Hue , 30. Minimalny odcień 31. Maximum Hue , 31. Maksymalny odcień 32. Minimum Saturation , 32. Minimalne nasycenie 33. Maximum Saturation , 33. Maksymalne nasycenie 34. Minimum Value , 34. Wartość minimalna 343 Keypoints , 343 Punkty orientacyjne 35. Maximum Value , 35. Wartość maksymalna 37. Saturation Offset , 37. Przesunięcie nasycenia 38. Value Offset , 38. Przesunięcie wartości 3D Blocks , Bloki 3D 3D CLUT (Fast) , 3D CLUT (szybki) 3D CLUT (Precise) , 3D CLUT (Precyzyjny) 3D Colored Object , Kolorowy obiekt 3D 3D Conversion , Konwersja 3D 3D Elevation , Wzniesienie 3D 3D Elevation [Animated] , Wzniesienie 3D [Animowane] 3D Extrusion , Wytłaczanie 3D 3D Extrusion [Animated] , Wytłaczanie 3D [Animowane] 3D Image Object , Obiekt obrazu 3D 3D Image Object [Animated] , Obiekt obrazu 3D [Animowany] 3D Image Type , Typ obrazu 3D 3D Lathing , 3D Wytrzymałość 3D Metaballs , Metabale 3D 3D Random Objects , Obiekty losowe 3D 3D Reflection , Odbicie 3D 3D Rubber Object , Gumowy obiekt 3D 3D Text Pointcloud , Chmura punktów tekstowych 3D 3D Tiles , Płytki 3D 3D Video Conversion , Konwersja wideo 3D 3D Waves , Fale 3D 3rd , 3. 3rd Color , 3. kolor 3rd Parameter , 3. parametr 3rd Tone , 3. tonacja 3rd X-Coord , 3. przewód X-Coord 3rd Y-Coord , 3. przewód Y-Coord 4 Colors , 4 Kolory 4 Grays , 4 Szarości 4. Segmentation [No Alpha Channel] , 4. Segmentacja [Brak kanału alfa] 4096x4096 Layer , 4096x4096 Warstwa 4th , 4. 4th Color , 4. kolor 4th Tone , 4. tonacja 5. Edge Threshold , 5. Próg krawędziowy 512x512 Layer , 512x512 Warstwa 5th , piąty 5th Color , 5. kolor 5th Tone , 5. tonacja 6. Smoothness , 6. Gładkość 60's (faded Alt) , Lata 60. (wyblakłe Alt) 60's (faded) , Lata 60. (wyblakłe) 64 (Faster) , 64 (Szybciej) 67.5 Deg. , 67,5 Deg. 6th , szósty 6th Color , 6. kolor 6th Tone , 6 Ton 7. Blur , 7. Rozmycie 7th , 7. 7th Color , 7. kolor 7th Tone , 7 Ton 8 Colors , 8 Kolory 8 Grays , 8 Szarości 8 Keypoints (RGB Corners) , 8 punktów kluczowych (RGB Corners) 8. Quadtree Pixelisation [No Alpha Channel] , 8. Pikselizacja czterodniowa [Brak kanału alfa] 8th , 8. 8th Color , 8. kolor 8th Tone , 8. tonacja 9. Quadtree Min Precision , 9. Quadtree Min Precision 9th , 9. 9th Color , 9. kolor [Cyan]MYK , MYK A Lot of Cyan , Dużo Cyanu A Lot of Magenta , Dużo Magenty A-Color Factor , Współczynnik A-Color A-Component , A-Komponent A4 / 100 PPI (Recommended) , A4 / 100 PPI (zalecane) About G'MIC , O G'MIC Absolute Brightness , Absolutna jasność Absolute Value , Wartość bezwzględna Abstraction , Abstrakcja Acceleration , Przyspieszenie Achromatomaly , Achromatomalia Achromatopsia , Achromatopsja Action , Działanie Action #1 , Działanie nr 1 Action #10 , Akcja nr 10 Action #11 , Akcja nr 11 Action #12 , Akcja nr 12 Action #13 , Działanie nr 13 Action #14 , Działanie nr 14 Action #15 , Akcja nr 15 Action #16 , Działanie nr 16 Action #17 , Działanie nr 17 Action #18 , Akcja nr 18 Action #19 , Akcja #19 Action #2 , Działanie nr 2 Action #20 , Akcja nr 20 Action #21 , Działanie nr 21 Action #22 , Działanie nr 22 Action #23 , Akcja nr 23 Action #24 , Akcja nr 24 Action #3 , Akcja nr 3 Action #4 , Akcja nr 4 Action #5 , Działanie nr 5 Action #6 , Działanie nr 6 Action #7 , Działanie nr 7 Action #8 , Akcja nr 8 Action #9 , Akcja nr 9 Action Magenta 01 , Działanie Magenta 01 Action Red 01 , Akcja Czerwony 01 Activate 'Pencil Smoother' , Aktywacja "Pencil Smoother Activate Color Enhancement , Aktywacja ulepszania kolorów Activate Colors Geometric Shapes , Aktywacja kolorów Kształty geometryczne Activate Custom Filter , Aktywuj filtr niestandardowy Activate Lizards , Aktywuj jaszczurki Activate Mirror , Aktywuj lustro Activate Pink Elephants , Aktywuj różowe słonie Activate Second Direction , Aktywuj drugi kierunek Activate Shakes , Aktywuj wstrząsy Activate Slice 1 , Aktywuj plaster 1 Activate Slice 2 , Aktywuj plaster 2 Activate Slice 3 , Aktywuj plaster 3 Activate Slice 4 , Aktywuj plaster 4 Activer Symmetrizoscope , Symmetrizoskop aktorowy Adaptive , Adaptacyjny Add , Dodaj Add 1px Outline , Dodaj 1px kontur Add Alpha Channels to Detail Scale Layers , Dodaj kanały Alpha do szczegółowej skali warstw Add as a New Layer , Dodaj jako nową warstwę Add Chalk Highlights , Dodaj kredę Highlights Add Color Background , Dodaj kolor tła Add Comment Area in HTML Page , Dodaj obszar komentarza na stronie HTML Add Grain , Dodaj ziarno Add Image Label , Dodaj etykietę z obrazem Add Painter's Touch , Dodaj dotyk malarza Add User-Defined Constraints (Interactive) , Dodaj ograniczenia zdefiniowane przez użytkownika (Interaktywne) Additional Duplicates Count , Dodatkowa liczba duplikatów Additional Outline , Dodatkowy zarys Additive , Dodatek Adjust Background Reconstruction , Regulacja rekonstrukcji tła Adventure 1453 , Przygoda 1453 Algorithm , Algorytm Alien Green , Obcy Zielony Align Image Streams , Wyrównywanie strumieni obrazu Align Layers , Wyrównać warstwy Aligned , Wyrównane Alignment Type , Typ wyrównania All , Wszystkie All 45° Rotations , Wszystkie 45 i stopnie; Obroty All 90° Rotations , Wszystkie 90 i stopnie; Obroty All [Collage] , Wszystko [Kolaż] All but Reference Color , Wszystkie oprócz koloru odniesienia All Layers and Masks , Wszystkie warstwy i maski All Tones , Wszystkie tony All XY-Flips , Wszystkie XY-Flipy Allow Angle , Pozwól na kąt Allow Self Intersections , Pozwól na skrzyżowania własne Alpha Channel , Kanał Alfa Alpha Mode , Tryb Alpha Also Match Gradients , Również gradienty dopasowania Ambient Lightness , Lekkość otoczenia Amount , Kwota Amplitude , Amplituda Amplitude (%) , Amplituda (%) Amplitude / Angle , Amplituda / Kąt Anaglyph Blue/yellow , Anaglif Niebieski/żółty Anaglyph Blue/yellow Optimized , Anaglif Niebieski/żółty Zoptymalizowany Anaglyph Glasses Adjustment , Regulacja okularów anaglifowych (Anaglyph Glasses) Anaglyph Green/magenta , Anaglif Zielony/magenta Anaglyph Green/magenta Optimized , Anaglif Zielony/magenta Zoptymalizowany Anaglyph Reconstruction , Rekonstrukcja anaglifowa Anaglyph Red/cyan , Anaglif Czerwony/cyan Anaglyph Red/cyan Optimized , Anaglif Czerwony/cyan Zoptymalizowany Anaglyph: Red/Cyan , Anaglif: Czerwony/Cyjan AnalogFX - Old Style I , AnalogFX - Stary Styl I AnalogFX - Old Style II , AnalogFX - Stary Styl II AnalogFX - Old Style III , AnalogFX - Stary Styl III Analysis Scale , Skala analityczna Analysis Smoothness , Analiza Gładkość And , I Angle , Kąt Angle (%) , Kąt (%) Angle (deg) , Kąt (stopień) Angle (deg.) , Kąt (stopień) Angle / Size , Kąt / Rozmiar Angle Cut , Kątowe cięcie Angle Dispersion , Rozproszenie kątowe Angle Image Contour , Kątowy kontur obrazu Angle of Disturbance Surface , Kąt Zaburzenia Powierzchnia Angle of Main Nebulous Surface , Kąt głównej powierzchni mgławicowej Angle Range , Zasięg kątowy Angle Range (deg.) , Zasięg kątowy (deg.) Angle Tilt , Kąt nachylenia Angle Variations , Zmiany kątów Anguish , Udręka Angular , Kątowy Angular Precision , Precyzja kątowa Angular Tiles , Płytki kątowe Anisotropic , Anizotropowy Anisotropy , Anizotropia Annular Steiner Chain Round Tiles , Okrągłe płytki łańcuchowe okrągłe Steinera Anti-Aliasing , Anty-Aliasing Antisymmetry , Antysymetria Any , Każdy Apocalypse This Very Moment , Apokalipsa Ta Bardzo Moment Apples , Jabłka Apply Adjustments On , Zastosuj korekty Wł. Apply Color Balance , Stosowanie Color Balance Apply External CLUT , Zastosuj zewnętrzne zamknięcie Apply Mask , Zastosuj maskę Apply Skin Tone Mask , Nałóż maseczkę z tonikiem skóry Apply Transformation From , Zastosuj transformację Od Aqua and Orange Dark , Aqua i Orange Dark Area , Obszar Area Smoothness , Obszar Gładkość Areas Light Adjustment , Obszary regulacji oświetlenia Areas Smoothness , Obszary Gładkość Array [Faded] , Tablica [Wyblakłe] Array [Mirrored] , Tablica [Mirrored] Array [Random Colors] , Tablica [Przypadkowe kolory] Array [Random] , Tablica [Losowo] Array [Regular] , Tablica [zwykła] Array Mode , Tryb macierzowy Arrows , Strzałki Arrows (Outline) , Strzałki (kontur) Artistic Modern , Nowoczesność artystyczna Artistic Hard , Twardy artystyczny Artistic Round , Runda artystyczna Ascii Art , Sztuka Ascii Aspect , Aspekt Aspect Ratio , Współczynnik aspektów Associated Color , Powiązany kolor Attenuation , Tłumienie Auto Balance , Automatyczne wyważenie Auto Reduce Level (Level Slider Is Disabled) , Automatyczna redukcja poziomu (suwak poziomu jest wyłączony) Auto Set Hue Inverse (Hue Slider Is Disabled) , Automatyczne ustawianie inwersji barwy (suwak barwy jest wyłączony) Auto-Reduce Number of Frames , Auto-Reduce Liczba ramek Auto-Set Periodicity , Automatyczne ustawianie okresowości Auto-Threshold , Auto-próg Autocrop Output Layers , Warstwy wyjściowe Autocrop Automatic , Automatycznie Automatic & Contrast Mask , Maska automatyczna i kontrastowa Automatic [Scan All Hues] , Automatyczne [skanowanie wszystkich odcieni] Automatic Color Balance , Automatyczny balans kolorów Automatic Depth Estimation , Automatyczne szacowanie głębokości Automatic Upscale for Optimum Results , Automatyczna skala wzrostu dla optymalnych wyników Autumn , Jesień Avalanche , Lawina Average , Średnia Average 3x3 , Średnia 3x3 Average 5x5 , Średnia 5x5 Average 7x7 , Średnia 7x7 Average 9x9 , Średnia 9x9 Average RGB , Średni RGB Average Smoothness , Średnia gładkość Avg Branching , Odgałęzienie Avg Avg Left Angle (deg.) , Avg Lewy kąt (stopień) Avg Length Factor (%) , Współczynnik średniej długości (%) Avg Thickness Factor (%) , Średni współczynnik grubości (%) Axis , Oś Azimuth , Azymut B&W , BOŚNIA I HERCEGOWINA B&W Pencil [Animated] , Ołówek B&W [Animowany] B&W Photograph , Fotografia B&W B&W Stencil [Animated] , B&W Stencil [Animowany] B-Color Factor , Czynnik B-Kolor B-Color Smoothness , B-Color Gładkość B-Component , B-Komponent Background , Tło Background Color , Kolor tła Background Intensity , Tło Intensywność pomocy Background Point (%) , Punkt wyjścia (%) Backward , Wsteczny Backward Horizontal , Wsteczny Poziomy Backward Vertical , Wsteczny Pionowy Balance , Bilans Balance Color , Równowaga kolorów Balance SRGB , Saldo SRGB Balloons , Balony Balls , Bale Band Width , Szerokość pasma Bandwidth , Szerokość pasma Barbed Wire , Drut kolczasty Bars , Bary Base Reference Dimension , Wymiar referencyjny podstawy Base Scale , Skala podstawowa Base Thickness (%) , Grubość podstawowa (%) Basic Adjustments , Dostosowania podstawowe Batch Processing , Przetwarzanie wsadowe Bayer Filter , Filtr Bayera Bayer Reconstruction , Rekonstrukcja Bayera Behind , Za Below , Poniżej Berlin Sky , Berlin Niebo Best Match , Najlepszy mecz BG Textured , BG Teksturowane Bi-Directional , Dwukierunkowy: Bidirectional [Smooth] , Bidirectional [Gładko] Bidirectional Rendering , Licytacja dwukierunkowa Bilateral , Dwustronnie Bilateral Radius , Promień dwustronny Binary , Binarny Binary Digits , Cyfry binarne Bit Masking (End) , Maskowanie bitów (koniec) Bit Masking (Start) , Maskowanie bitów (Start) Black , Czarny Black Level , Poziom czerni Black on Transparent , Czarny na przezroczystym Black on Transparent White , Czarny na białym przezroczystym Black on White , Czarno na białym Black Star , Czarna Gwiazda Black to White , Od czarnego do białego Blacks , Czarnuchy Blade Runner , Biegacz łopatkowy Blank , Puste miejsce Bleech Bypass Yellow 01 , Bleech Bypass Żółty 01 Blend , Mieszanka Blend [Average All] , Blend [Średnia wszystkich] Blend [Edges] , Blend [Krawędzie] Blend [Median] , Blend [Mediana] Blend [Seamless] , Blend [Bez szwu] Blend All Layers , Łączyć wszystkie warstwy Blend Decay , Rozpad mieszaniny Blend Mode , Tryb mieszania Blend Scales , Wagi mieszane Blending Mode , Tryb mieszania Blending Size , Rozmiar mieszanki Blindness Type , Typ ślepoty Blob 1 Color , Blob 1 Kolor Blob 10 Color , Blob 10 Kolor Blob 11 Color , Blob 11 Kolor Blob 12 Color , Blob 12 Kolor Blob 2 Color , Blob 2 Kolor Blob 3 Color , Blob 3 Kolor Blob 4 Color , Blob 4 Kolor Blob 5 Color , Blob 5 Kolor Blob 6 Color , Blob 6 Kolor Blob 7 Color , Blob 7 Kolor Blob 8 Color , Blob 8 Kolor Blob 9 Color , Blob 9 Kolor Blobs Editor , Redaktor Blobs Bloc , Blok Bloc Size (%) , Wielkość bloku (%) Blockism , Blokizm Blue , Niebieski Blue & Red Chrominances , Niebieskie i czerwone Chrominancje Blue Chroma Factor , Współczynnik niebieskiego aromatu Blue Chroma Smoothness , Niebieski aromat Gładkość Blue Chrominance , Błękitny Chrominance Blue Factor , Czynnik niebieski Blue House , Błękitny Dom Blue Ice , Niebieski lód Blue Level , Poziom niebieski Blue Rotations , Niebieskie obroty Blue Screen Mode , Tryb Blue Screen Blue Smoothness , Niebieska gładkość Blue Steel , Niebieska stal Blue Wavelength , Niebieska Długość fali Blur , Rozmycie Blur [Angular] , Rozmycie [kątowe] Blur [Depth-Of-Field] , Rozmycie [Głębokie pole] Blur [Gaussian] , Rozmycie [Gaussian] Blur [Glow] , Rozmycie [Glow] Blur [Linear] , Rozmycie [Liniowe] Blur [Multidirectional] , Rozmycie [Wielokierunkowy] Blur [Radial] , Rozmycie [Radial] Blur Alpha , Rozmycie Alfa Blur Amount , Rozmycie Kwota Blur Amplitude , Rozmycie Amplitudy Blur Dodge and Burn Layer , Rozmycie warstwy uskoków i oparzeń Blur Factor , Czynnik rozmycia Blur Frame , Rozmycie ramki Blur Percentage , Rozmycie Procent Blur Precision , Rozmycie Dokładność Blur Standard Deviation , Rozmycie odchylenia standardowego Blur Strength , Siła rozmycia Blur the Mask , Rozmycie maski Boats , Łodzie Boost Chromaticity , Zwiększyć chromatyczność Boost Contrast , Kontrast wzrostowy Boost Stroke , Pobudzenie udaru Border Color , Kolor granicy Border Opacity , Nieprzezroczystość na granicy Border Outline , Obrys granicy Border Smoothness , Granica Gładkość Border Thickness (%) , Grubość granicy (%) Border Width , Szerokość granicy Both , Oba Bottles , Butelki Bottom , Dół Bottom and Left Foreground , Dół i lewy pierwszy plan Bottom and Right Foreground , Dół i prawy pierwszy plan Bottom and Top Foreground , Dół i góra pierwszego planu Bottom Layer , Warstwa spodnia Bottom Left , Dół Lewa strona Bottom Right , Na dole po prawej stronie Bottom Size , Wielkość dna Bottom-Left , Dół-Lewica Bottom-Left Vertex (%) , Wierzchołek dolny-lewy (%) Bottom-Right , Dół-prawo Bottom-Right Vertex (%) , Wierzchołek dolny-prawy (%) Bouncing Balls , Podskakujące piłki Boundaries (%) , Granice (%) Boundary , Granica Boundary Condition , Stan graniczny Boundary Conditions , Warunki brzegowe Box Fitting , Wyposażenie pudełka Branches , Oddziały Braque: Landscape near Antwerp , Braque: Krajobraz w pobliżu Antwerpii Braque: Little Bay at La Ciotat , Braque: Little Bay w La Ciotat Braque: The Mandola , Braque: Mandola Brighness , Jasność Bright , Jasne Bright Green , Jasnozielony Bright Length , Jasna Długość Bright Pixels , Jasne piksele Bright Teal Orange , Jasna Tealowa Pomarańcza Bright Warm , Jasny Ciepły Brighter , Jaśniejszy Brightness , Jasność Brightness (%) , Jasność (%) Bristle Size , Rozmiar włosia Bronze , Brązowy Brownish , Brązowy Built-in Gray , Wbudowany w szarość Bump Factor , Czynnik uderzeniowy Bump Map , Mapa uderzeniowa Burn Blur , Rozmycie płomieni Burn Strength , Wytrzymałość na oparzenia By Blue Chrominance , Przez Blue Chrominance By Blue Component , Przez składnik niebieski By Custom Expression , Według indywidualnego wyrażenia By Green Component , Przez komponent zielony By Iteration , Przez Iterację By Lightness , Przez lekkość By Luminance , Przez Luminancję By Red Chrominance , Przez Red Chrominance By Red Component , Przez komponent czerwony By Value , Według wartości Byers 11 , Bajery 11 C[Magenta]YK , C[Magenta] YK Camera Motion Only , Tylko ruch kamery Camera X , Kamera X Camera Y , Kamera Y Cameraman , Kamerzysta Candle Light , Światło świec Canvas Brightness , Płótno Jasność Canvas Color , Kolor płótna Canvas Darkness , Płótno Ciemność Canvas Texture , Tekstura płótna Car , Samochód Card Suits , Garnitury na karty Cartesian Transform , Transformacja kartezjańska Cartoon , Kreskówka Cartoon [Animated] , Kreskówka [Animowany] Category , Kategoria Cell Size , Wielkość komórki Center , Centrum Center (%) , Centrum (%) Center Background , Centrum Tło Center Foreground , Centrum Pierwszy plan Center Help , Pomoc Centrum Center Size , Rozmiar środka Center Smoothness , Centrum Gładkość Center X , Centrum X Center X-Shift , Centrum X-Shift Center Y , Centrum Y Center Y-Shift , Centrum Y-Shift Centering (%) , Centrowanie (%) Centering / Scale , Centrowanie / Skala Centers Color , Centra Kolor Centers Radius , Centra Promień Centimeter , Centymetr Central Perspective Outdoor , Centralna perspektywa na zewnątrz Central Perspective Indoor , Perspektywa centralna Wewnątrz Central Perspective Outdoor , Centralna perspektywa na zewnątrz Centre , Centrum Channel #1 , Kanał #1 Channel #2 , Kanał #2 Channel #3 , Kanał #3 Channel Processing , Przetwarzanie kanałów Channel(s) , Kanał(y) Channels , Kanały Channels to Layers , Kanały do warstw Charcoal , Węgiel drzewny Checkered Inverse , Inwersja w szachownicę Chemical 168 , Chemikalia 168 Chessboard , Szachownica Chick , Kurczak Chroma Noise , Chroma Hałas Chromatic Aberrations , Aberracje chromatyczne Chromaticity From , Chromatyczność Od Chrome 01 , Chrom 01 Chrominances Only (ab) , Tylko chrominanse (ab) Chrominances Only (CbCr) , Tylko chrominanse (CbCr) Cinema , Kino Cinema 2 , Kino 2 Cinema 3 , Kino 3 Cinema 4 , Kino 4 Cinema 5 , Kino 5 Cinema Noir , Kino Noir Cinematic (8) , Kino (8) Cinematic Mexico , Kino Meksyk Cinematic Travel (29) , Podróże kinematograficzne (29) Circle , Koło Circle (Inv.) , Koło (Inv.) Circle 1 , Okręg 1 Circle 2 , Okręg 2 Circle Abstraction , Okrąg Abstrakcja Circle Art , Sztuka koła Circle to Square , Koło do kwadratu Circle Transform , Transformacja okręgu Circles , Koła Circles (Outline) , Kręgi (kontur) Circles 1 , Okręgi 1 Circles 2 , Koła 2 Circular , Okólnik City 7 , Miasto 7 Clarity , Przejrzystość Classic Chrome , Chrom klasyczny Classic Teal and Orange , Classic Teal i Orange Clean , Czyste Clean Text , Czysty tekst Clear Control Points , Przejrzyste punkty kontroli Clip , Klip Clip CMYK , Klips CMYK Closing , Zamknięcie Closing - Opening , Zamknięcie - Otwarcie Closing - Original , Zamknięcie - Oryginał Clouds , Chmury CLUT from After - Before Layers , CLUT od After - Before Layers CLUT Opacity , ZAMKNIĘTE ZAMKNIĘCIE CM[Yellow]K , CM[Żółty]K CMY[Key] , CMY[Klucz] CMYK [cyan] , CMYK [cyjan] CMYK [Key] , CMYK [Klucz] CMYK [Yellow] , CMYK [Żółty] CMYK Tone , Ton CMYK Coarse , Gruby Coarsest (faster) , Najgrubszy (szybszy) Code , Kod Coefficients , Współczynniki Coffee 44 , Kawa 44 Coherence , Spójność Cold Simplicity 2 , Prostota na zimno 2 Color , Kolor Color (rich) , Kolor (bogaty) Color 1 , Kolor 1 Color 1 (Up/Left Corner) , Kolor 1 (górny/lewy narożnik) Color 2 , Kolor 2 Color 2 (Up/Right Corner) , Kolor 2 (góra/prawa strona narożnika) Color 3 , Kolor 3 Color 3 (Bottom/Left Corner) , Kolor 3 (dolny/lewy narożnik) Color 4 , Kolor 4 Color 4 (Bottom/Right Corner) , Kolor 4 (dolny/prawy narożnik) Color A , Kolor A Color Abstraction Opacity , Abstrakcyjna barwa Nieprzezroczystość Color Abstraction Paint , Kolorowa farba abstrakcyjna Color B , Kolor B Color Balance , Bilans kolorów Color Basis , Podstawa koloru Color Blending , Łączenie kolorów Color Blindness , Ślepota kolorów Color Blue-Yellow , Kolor niebiesko-żółty Color Burn , Oparzenie kolorem Color C , Kolor C Color Channel Smoothing , Wygładzanie kanałów kolorowych (Color Channel Smoothing) Color Channels , Kanały kolorowe Color D , Kolor D Color Dispersion , Dyspersja kolorów Color Doping , Doping kolorystyczny Color E , Kolor E Color Effect Mode , Tryb efektów kolorystycznych Color F , Kolor F Color G , Kolor G Color Grading , Klasyfikacja kolorów Color Green-Magenta , Kolor Green-Magenta Color Highlights , Kolory podświetlenia Color Image , Kolorowy obrazek Color Intensity , Intensywność koloru Color Mask , Maska kolorowa Color Mask [Interactive] , Maska kolorowa [Interaktywna] Color Median , Mediana kolorów Color Metric , Kolor metryczny Color Midtones , Kolory Midtones Color Mode , Tryb kolorystyczny Color Model , Model kolorowy Color Negative , Kolor Negatywny Color on White , Kolor na białym Color Overall Effect , Ogólny efekt kolorystyczny Color Presets , Ustawienia kolorów Color Quantization , Kwantyfikacja kolorów Color Rendering , Rendering kolorów Color Shading (%) , Cieniowanie kolorów (%) Color Shadows , Cienie kolorów Color Smoothness , Gładkość kolorów Color Space , Przestrzeń barw Color Spots + Extrapolated Colors + Lineart , Kolorowe plamy + Ekstrapolowane kolory + Lineart Color Spots + Lineart , Kolorowe plamy + Lineart Color Strength , Wytrzymałość koloru Color Temperature , Temperatura barwowa Color Tolerance , Tolerancja kolorów Color Variation [Random -1] , Zmiana koloru [Przypadkowa -1] Colorbase , Baza kolorystyczna Colored Geometry , Geometria barwna Colored Grain , Kolorowe Ziarno Colored Lineart , Kolorowy Lineart Colored on Black , Kolorowy na czarno Colored on Transparent , Kolorowy na Transparentnym Colored Outline , Kolorowy kontur Colored Pencils , Ołówki kolorowe Colored Regions , Kolorowe regiony Colorful , Kolorowy Colorful 0209 , Kolorowy 0209 Colorful Blobs , Kolorowe kleksy Coloring , Koloryzacja Colorize [Interactive] , Koloryzacja [Interaktywny] Colorize [Photographs] , Koloryzacja [Fotografie] Colorize [with Colormap] , Colorize [z Colormapem] Colorize Mode , Tryb koloryzacji Colorized Image (1 Layer) , Obraz kolorowy (1 warstwa) Colormap Type , Typ Colormap Colors , Kolory Colors A , Kolory A Colors B , Kolory B Colors Only , Tylko kolory Colors Only (1 Layer) , Tylko kolory (1 warstwa) Colors to Layers , Kolory do warstw Colour , Kolor Colour Channels , Kanały kolorowe Colour Model , Model kolorowy Colour Smoothing , Wygładzanie kolorów Colour Space Mode , Tryb przestrzeni barw Column by Column , Kolumna po kolumnie Comic Style , Styl komiksowy Components , Części składowe Composed Layers , Warstwy złożone Compress Highlights , Kompresja Highlights Compression Blur , Rozmycie kompresji Compression Filter , Filtr kompresyjny Computation Mode , Tryb obliczeniowy Cone , Stożkowe Conflict 01 , Konflikt 01 Conformal Maps , Mapy konformalne Connectivity , Łączność Connectors Centering , Łączniki Centrowanie Connectors Variability , Złącza Zmienność Constrain Image Size , Ograniczenie rozmiaru obrazu Constrain Values , Ograniczenia wartości Constrained Sharpen , Ograniczone Ostrzenie Constraint Radius , Ograniczenie Promień Continuous Droste , Ciągłe odmrażanie (Continuous Droste) Contour Coherence , Kontur Spójność Contour Detection (%) , Wykrywanie konturów (%) Contour Normalization , Normalizacja konturów Contour Precision , Precyzja konturu Contour Threshold , Kontur Próg Contour Threshold (%) , Kontur Próg (%) Contours , Kontury Contours + Flocon/Snowflake , Kontury + flokon/ płatek śniegu Contours Recursion , Kontury Odwrócenie Contrail 35 , Kontrast 35 Contrast , Kontrast Contrast (%) , Kontrast (%) Contrast Smoothness , Kontrast Gładkość Contrast Swiss Mask , Kontrast Maska szwajcarska Contrast with Highlights Protection , Kontrast z ochroną przed światłem słonecznym Contrasty Afternoon , Kontrast Po południu Contrasty Green , Kontrast Zielony Contributors , Współtwórcy Control Point 1 , Punkt kontroli 1 Control Point 2 , Punkt kontroli 2 Control Point 3 , Punkt kontroli 3 Control Point 4 , Punkt kontroli 4 Control Point 5 , Punkt kontroli 5 Control Point 6 , Punkt kontroli 6 Convolve , Konvolve Cool / Warm , Cool / Ciepło Copper , Miedź Corner Brightness , Narożnik Jasność Correlated Channels , Kanały powiązane Counter Clockwise , W kierunku przeciwnym do ruchu wskazówek zegara Course 4 , Kurs 4 Cracks , Pęknięcia Creative Pack (33) , Pakiet kreatywny (33) Crisp Romance , Rzepki Romans Crisp Warm , Chrupiące Ciepło Criterion , Kryterium Crop , Uprawa Crop (%) , Uprawy (%) Cross Process CP 130 , Proces krzyżowy CP 130 Cross Process CP 14 , Proces krzyżowy CP 14 Cross Process CP 15 , Proces krzyżowy CP 15 Cross Process CP 16 , Proces krzyżowy CP 16 Cross Process CP 18 , Proces krzyżowy CP 18 Cross Process CP 3 , Proces krzyżowy CP 3 Cross Process CP 4 , Proces krzyżowy CP 4 Cross Process CP 6 , Proces krzyżowy CP 6 Cross-Hatch Amount , Wylęgarnia Ilość (Cross-Hatch) Crossed , Przekreślony Crosses 1 , Krzyżyki 1 Crosses 2 , Krzyżyki 2 Crosshair , Włosie krzyżowe CRT Sub-Pixels , Subpikseli CRT Crystal Background , Kryształowe tło Cube , Kostka Cube (256) , Kostka (256) Cubic , Sześcienny Cubicle 99 , Boks 99 Cubism , Kubizm Cubism on Color Abstraction , Kubizm na temat abstrakcji kolorystycznej Cup , Puchar Cupid , Kupidyn Curvature , Zakrzywienie Curvature Shadow , Cień krzywizny Curve Amount , Krzywa Kwota Curve Angle , Kąt krzywizny Curve Length , Długość krzywej Curved , Wygięty Curved Stroke , Zakrzywiony Udar Curves , Krzywe Curves Previously Defined , Poprzednio zdefiniowane krzywe Custom , Niestandardowy Custom Code [Global] , Kod niestandardowy [Globalny] Custom Code [Local] , Kod niestandardowy [lokalny] Custom Correction Map , Niestandardowa mapa korekcyjna Custom Depth Correction , Niestandardowa korekta głębokości Custom Depth Maps Stream , Niestandardowe mapy głębokości Strumień Custom Dictionary , Słownik zwyczajowy Custom Filter Code , Niestandardowy kod filtrujący Custom Formula , Formuła niestandardowa Custom Kernel , Jądro niestandardowe Custom Layers , Warstwy niestandardowe Custom Layout , Układ niestandardowy Custom Style (Bottom Layer) , Styl niestandardowy (warstwa dolna) Custom Style (Top Layer) , Styl niestandardowy (górna warstwa) Custom Transform , Transformacja niestandardowa Customize CLUT , Dostosuj ZAMKNIĘCIE Cut , Cięcie Cut & Normalize , Cięcie i normalizacja Cutout , Wycięcie Cyan , Cyjan Cyan Factor , Czynnik cyjanowy Cyan Smoothness , Cyjan Gładkość Cycle Layers , Warstwy rowerowe Cycles , Cykle D and O 1 , D i O 1 Damping per Octave , Tłumienie na oktawę Dark Motive , Mroczny motyw Dark Blues in Sunlight , Ciemny błękit w świetle słonecznym Dark Color , Ciemny kolor Dark Edges , Ciemne Krawędzie (Dark Edges) Dark Motive , Mroczny motyw Dark Pixels , Ciemne piksele Dark Place 01 , Ciemne miejsce 01 Dark Sky , Ciemne niebo Darken , Ciemny Darker , Ciemniejszy Darkness , Ciemność Darkness Level , Poziom ciemności Date 39 , Data 39 Day for Night , Dzień na noc Day4Nite , Dzień 4Nite Daylight Scene , Scena dzienna Debug Font Size , Rozmiar czcionki debugowej Decompose , Rozkładać się Decompose Channels , Rozkładanie kanałów Decoration , Dekoracja Decreasing , Zmniejszający się Deep , Głębokie Deep Blue , Głęboki błękit Deep High Contrast , Głęboki Wysoki Kontrast Default , Domyślnie Defects Contrast , Wady Kontrast Defects Density , Wady Gęstość Defects Size , Wady Rozmiar Defects Smoothness , Wady Gładkość Deform , Deformować Delaunay: Portrait De Metzinger , Delaunay: Portret De Metzinger Delaunay: Windows Open Simultaneously , Delaunay: Windows otwarty jednocześnie Delete Layer Source , Usuń źródło warstwy Delicatessen , Delikatesy Density , Gęstość zaludnienia Density (%) , Gęstość (%) Depth , Głębokość Depth Fade In Frames , Głębokie zaniki w obramowaniach Depth Fade Out Frames , Ramy zanikające wgłębienie (Depth Fade Out Frames) Depth Field Control , Kontrola pola głębokości Depth Map , Mapa głębokości Depth Map Construction , Budowa mapy głębokości Depth Map Only , Tylko mapa głębokości Depth Map Reconstruction , Rekonstrukcja mapy głębokości Depth Maps Only , Tylko mapy głębokości Depth-Of-Field Type , Głębokość pola Typ Desaturate (%) , Desaturat (%) Desaturate Norm , Nienasycona norma Descent Method , Metoda zejścia Descreen , Ekran Desert Gold 37 , Pustynne złoto 37 Destination (%) , Miejsce przeznaczenia (%) Destination X-Tiles , Miejsce docelowe Płytki X Destination Y-Tiles , Miejsce przeznaczenia Płytki Y Detail , Szczegóły Detail Level , Poziom szczegółowości Detail Reconstruction Detection , Szczegóły Wykrywanie rekonstrukcji Detail Reconstruction Smoothness , Szczegóły Rekonstrukcja Gładkość Detail Reconstruction Strength , Szczegóły Rekonstrukcja Wytrzymałość Detail Reconstruction Style , Szczegóły Styl rekonstrukcji Detail Scale , Skala szczegółowa Detail Strength , Siła szczegółowa Details , Szczegóły Details Amount , Szczegóły Kwota Details Equalizer , Szczegóły Korektor Details Scale , Szczegóły Skala Details Smoothness , Szczegóły Gładkość Details Strength (%) , Szczegóły Wytrzymałość (%) Detect Skin , Wykrywaj skórę Deuteranomaly , Deuteranomalia Deviation , Odchylenie Diamond , Diament Diamonds , Diamenty Diamonds (Outline) , Diamenty (kontur) Dices , Kostki Dices with Colored Numbers , Kostki z kolorowymi numerami Dices with Colored Sides , Kostki z kolorowymi ścianami bocznymi Difference , Różnica Difference Mixing , Różnica Mieszanie Difference of Gaussians , Różnica między Gausjanami Different Axis , Różne osie Diffuse (%) , Rozproszone (%) Diffuse Shadow , Rozproszony cień Diffusion , Dyfuzja Diffusion Tensors , Tensory dyfuzyjne Diffusivity , Diffuzyjność Digits , Cyfry Dilatation , Dylatacja Dilate , Dylatacja Dilation , Dylatacja Dilation - Original , Dylatacja - Oryginalna Dilation / Erosion , Dylatacja / Erozja Dimension , Wymiar Dimension [Diff] , Wymiar [Różnica] Dimension A , Wymiar A Dimensions (%) , Wymiary (%) Dimensions Pixels , Wymiary Piksele Dipole: 1/(4*z^2-1) , Dipol: 1/(4*z^2-1) Direct , Bezpośrednio Direction , Kierunek: Directions 23 , Wskazówki 23 Dirty , Brudny Disable , Wyłączyć Disabled , Niepełnosprawni Discard Contour Guides , Prowadnice konturów odrzutów Discard Transparency , Przejrzystość odrzutów Display , Wyświetlacz Display Blob Controls , Wyświetlanie pokręteł Display Color Axes , Wyświetlanie osi kolorów Display Contours , Wyświetlanie konturów Display Coordinates , Współrzędne wyświetlania Display Coordinates on Preview Window , Wyświetlanie współrzędnych w oknie podglądu Display Debug Info on Preview , Wyświetlanie informacji o debugach na Podglądzie Distance , Odległość Distance (Fast) , Odległość (Szybko) Distance Transform , Odległość Transformacja Distort Lens , Zniekształcenie obiektywu Distortion Factor , Czynnik zniekształcający Distortion Surface Angle , Zakłócenie Kąt powierzchniowy Distortion Surface Position , Zniekształcenie Położenie powierzchniowe Disturbance Scale-By-Factor , Skala zaburzeń - czynnik powodujący zaburzenia Disturbance X , Zakłócenie X Disturbance Y , Zakłócenie Y Dither Output , Dither Wyjście Divide , Podziel Do Not Flatten Transparency , Nie spłaszczać przejrzystości Dodge and Burn , Dodge i Burn Dodge Strength , Wytrzymałość na uskoki (Dodge Strength) DOF Analyzer , Analizator DOF Dog , Pies Dot Size , Rozmiar kropki Dots , Kropki Download External Data , Pobieranie danych zewnętrznych Dragon Curve , Smocza krzywa Dragonfly , Ważka Drawing Mode , Tryb rysunkowy Dream , Sen Dream 1 , Sen 1 Dream 85 , Sen 85 Dream Smoothing , Wygładzanie snów Drop Water , Kropla wody Duck , Kaczka Duplicate Bottom , Duplikat Dół Duplicate Horizontal , Duplikat Poziomy Duplicate Left , Duplikat w lewo Duplicate Right , Duplikat prawa Duplicate Top , Duplikat wierzchołka Duplicate Vertical , Duplikat w pionie Duration , Czas trwania pomocy Dynamic Range Increase , Dynamiczny wzrost zasięgu Eagle , Orzeł Earth , Ziemia Earth Tone Boost , Ziemskie Tony Boost Edge Antialiasing , Antialiasing krawędziowy Edge Attenuation , Tłumienie krawędziowe Edge Detect Includes Chroma , Wykrywacz krawędzi zawiera Chroma Edge Exponent , Wykładnik krawędziowy Edge Fidelity , Wierność krawędzi Edge Influence , Wpływ krawędziowy Edge Mask , Maska krawędziowa Edge Sensitivity , Wrażliwość krawędziowa Edge Simplicity , Prostota krawędzi Edge Smoothness , Gładkość krawędzi Edge Thickness , Grubość krawędzi Edge Threshold , Próg krawędziowy Edge Threshold (%) , Próg krawędziowy (%) Edges , Krawędzie Edges (%) , Krawędzie (%) Edges [Animated] , Krawędzie [Animowane] Edges Offsets , Krawędzie Odstępstwa Edges on Fire , Krawędzie w ogniu Edges-0.5 (beware: Memory-Consuming!) , Krawędzie-0.5 (uwaga: Pamięć-zużywa!) Edges-1 (beware: Memory-Consuming!) , Edges-1 (uważaj: Pamięć-Zużywa!) Edges-2 (beware: Memory-Consuming!) , Krawędzie-2 (uwaga: Pamięć-zabierająca!) Effect Strength , Siła oddziaływania Effect X-Axis Scaling , Efekt X-axis Scaling Effect Y-Axis Scaling , Efekt Y-Axis Scaling Eight Layers , Osiem warstw Eight Threads , Osiem gwintów Elegance 38 , Elegancja 38 Elephant , Słoń Elevation , Wzniesienie Elevation (%) , Wzniesienie (%) Ellipse Painting , Malarstwo elipsowe Ellipse Ratio , Stosunek elipsy Ellipsionism , Elipsjonizm Ellipsionism Opacity , Elipsjonizm Nieprzezroczystość Ellipsoid , Elipsoida Emboss , Wytłoczenie Enable Antialiasing , Włączanie antyaliasingu Enable Interpolated Motion , Włącz Interpolowany Ruch Enable Morphology , Włącz morfologię Enable Paintstroke , Włączanie pociągnięcia farbą Enable Segmentation , Włącz Segmentację Enchanted , Zaczarowany End Color , Kolor końcowy End Frame Number , Numer ramy końcowej End of Mid-Tones , Koniec Mid-Tones End Point Connectivity , Łączność z punktami końcowymi End Point Rate (%) , Stopa punktów końcowych (%) Ending Angle , Kąt końcowy Ending Color , Kolor końcowy Ending Feathering , Zakończenie pierzenia Ending Point (%) , Punkt końcowy (%) Ending Scale (%) , Skala końcowa (%) Ending Value , Wartość końcowa Ending X-Centering , Zakończenie X-Centrowania Ending Y-Centering , Końcowy Y-Centrowanie Engrave , Grawerunek Enhance Detail , Zwiększanie szczegółowości Enhance Details , Poprawa szczegółów Equalization , Wyrównanie Equalization (%) , Wyrównanie (%) Equalize , Wyrównać Equalize and Normalize , Wyrównywać i normalizować Equalize at Each Step , Wyrównać na każdym kroku Equalize HSI-HSL-HSV , Wyrównać HSI-HSL-HSV Equalize HSV , Wyrównać HSV Equalize Light , Wyrównać światło Equalize Local Histograms , Wyrównywanie lokalnych histogramów Equalize Shadow , Wyrównać cień Equation Plot [Parametric] , Wykres równań [Parametryczny] Equation Plot [Y=f(X)] , Działka równania [Y=f(X)] Equirectangular to Nadir-Zenith , Równoległe do Nadir-Zenitu Erosion , Erozja Erosion / Dilation , Erozja / Dylatacja Etch Tones , Tony wytrawiające Eterna for Flog , Eterna dla Floga Euclidean , Euklidesan Euclidean - Polar , Euklidesowy - Polarny Exclusion , Wyłączenie Expand , Rozwiń Expand Background Reconstruction , Rozszerzenie zaplecza Odbudowa Expand Shadows , Rozwiń cienie Expand Size , Rozszerzenie rozmiaru Expanding Mirrors , Rozszerzające się lustra Expired (fade) , Wygasł (blaknięcie) Expired (polaroid) , Wygasł (polaroid) Expired 69 , Wygasł 69 Exponent , Składnik Exponent (Imaginary) , Składnik (Wyobrażeniowy) Exponent (Real) , Wyrażnik (rzeczywisty) Exponential , Wykładniczy Export RGB-565 File , Eksport pliku RGB-565 Exposure , Ekspozycja Expression , Wyrażenie Extend 1px , Rozszerzenie 1px External Transparency , Przejrzystość zewnętrzna Extra Smooth , Wyjątkowo gładki Extract Foreground [Interactive] , Wyciągnij pierwszy plan [Interaktywny] Extract Objects , Ekstrakt Obiekty Extrapolate Color Spots on Transparent Top Layer , Ekstrapolowane kolorowe plamy na przezroczystej warstwie wierzchniej Factor , Czynnik Fade , Wygasanie Fade End , Blaknięcie Koniec Fade End (%) , Blaknięcie Koniec (%) Fade Layers , Warstwy blaknięcia Faded , Wyblakły Faded (alt) , Wyblakły (alt) Faded (analog) , Wyblakły (analogowy) Faded (extreme) , Wyblakłe (skrajne) Faded (vivid) , Wyblakły (żywy) Faded 47 , Wyblakły 47 Faded Green , Wyblakły zielony Faded Look , Wyblakłe spojrzenie Faded Print , Wyblakły druk Faded Retro 01 , Wyblakłe Retro 01 Faded Retro 02 , Wyblakłe Retro 02 Fading , Zanikający Fall Colors , Kolory jesienne Far Point Deviation , Odchylenie punktu dalekiego Fast , Szybko Fast (Approx.) , Fast (Ok. ) Fast (Low Precision) Preview , Szybki (niska precyzja) Podgląd Fast Approximation , Szybkie przybliżenie Fast Blend , Szybka mieszanka Fast Blend Preview , Podgląd szybkiej mieszanki Fast Recovery , Szybki powrót do zdrowia Fast Resize , Szybka zmiana rozmiaru Feature Analyzer Smoothness , Analizator Feature Analyzer Gładkość Feature Analyzer Threshold , Próg dla analizatora Feature Analyzer Felt Pen , Pióro filcowe FFT Preview , Podgląd FFT Fibers , Włókna Fibers Amplitude , Włókna Amplituda Fibers Smoothness , Włókna Gładkość Fibrousness , Włóknistość Fidelity Chromaticity , Wierność Chromatyczność Fidelity Smoothness (Coarsest) , Wierność Gładkość (Najgrubsza) Fidelity Smoothness (Finest) , Wierność Gładkość (Finest) Fidelity to Target (Coarsest) , Wierność celowi (najgrubsza) Fidelity to Target (Finest) , Wierność celowi (Finest) Filename , Nazwa pliku Fill Holes , Wypełnianie otworów Fill Holes % , Wypełnianie otworów % Fill Transparent Holes , Wypełnianie przezroczystych otworów Filled , Wypełniony Filled Circles , Wypełnione kółka Filling , Wypełnianie Film Highlight Contrast , Kontrast świateł filmowych (Film Highlight Contrast) Filmic , Filmowy Filter Design , Projektowanie filtrów Final Image , Obraz końcowy Fine , Dobrze Fine 2 , Grzywna 2 Fine Details Smoothness , Drobne szczegóły Gładkość Fine Details Threshold , Szczegóły Próg Fine Noise , Drobny hałas Fine Scale , Dokładna skala Finest (slower) , Najlepszy (wolniejszy) Finger Paint , Farba do malowania palcami Finger Size , Rozmiar palca Fire Effect , Efekt pożarowy Fireworks , Fajerwerki First , Najpierw First Color , Pierwszy kolor First Frame , Pierwsza rama First Offset , Pierwszy offset First Radius , Pierwszy promień First Size , Pierwszy rozmiar Fish-Eye Effect , Efekt rybiego oka Fitting Function , Funkcja dopasowywania Five Layers , Pięć warstw Flag , Flaga Flag (256) , Flaga (256) Flat Color , Kolor płaski Flat Regions Removal , Usuwanie regionów płaskich Flatness , Płaskość Flip Left / Right , Przerzucanie w lewo / w prawo Flip Left/Right , Przerzucanie w lewo/prawo Flip Tolerance , Tolerancja przerzucania Flower , Kwiat Foggy Night , Mglista noc Folder Name , Nazwa folderu Font Colors , Kolory czcionek Force Gray , Siła Szara Force Re-Download from Scratch , Siła Powtórne obciążenie od zarysowania Force Tiles to Have Same Size , Wymuszać, aby płytki miały ten sam rozmiar Force Transparency , Siła Przejrzystość Foreground Color , Kolor pierwszego planu Form , Formularz Formula , Formuła Forward , Do przodu Forward Horizontal , Do przodu Poziomo Forward Horizontal , Do przodu Poziomo Forward Vertical , Do przodu Pionowo Four Layers , Cztery warstwy Four Threads , Cztery nici Fourier Analysis , Analiza Fouriera Fourier Filtering , Filtracja Fouriera Fourier Transform , Transformacja Fouriera Fourier Watermark , Znak wodny Fouriera Fractal Noise , Hałas fałdowy Fractal Points , Fraktalne punkty Fractal Set , Zestaw Fractal Set Fractured Clouds , Złamane chmury Fragment Blur , Rozmycie fragmentów Frame (px) , Ramka (px) Frame [Blur] , Ramka [Rozmycie] Frame [Cube] , Ramka [Kostka] Frame [Fuzzy] , Ramka [Fuzzy] Frame [Mirror] , Ramka [Lustro] Frame [Painting] , Rama [Malarstwo] Frame [Pattern] , Ramka [Wzór] Frame [Regular] , Rama [zwykła] Frame [Round] , Rama [Runda] Frame [Smooth] , Rama [Smooth] Frame as a New Layer , Rama jako nowa warstwa (Frame as a New Layer) Frame Color , Kolor ramki Frame Files Format , Format plików ramki Frame Format , Format ramki Frame Size , Rozmiar ramki Frame Skip , Ramka Pomijanie Frame Type , Typ ramy Frame Width , Szerokość ramy Frames , Ramki Frames Offset , Ramki Przesunięcie Freaky B&W , Dziwny B&W Freaky Details , Dziwne szczegóły Freeze , Zamrażanie French Comedy , Komedia francuska Frequency , Częstotliwość: Frequency (%) , Częstotliwość (%) Frequency Analyzer , Analizator częstotliwości Frequency Range , Zakres częstotliwości From Input , Od wejścia From Reference Color , Od koloru referencyjnego Frosted , Zamrożone Fruits , Owoce Fuji FP-100c Negative , Fuji FP-100c Negatywny Fuji FP-100c Negative + , Fuji FP-100c Ujemny + Fuji FP-100c Negative ++ , Fuji FP-100c Ujemny ++ Fuji FP-100c Negative +++ , Fuji FP-100c Ujemny +++ Fuji FP-100c Negative ++a , Fuji FP-100c Ujemny ++a Fuji FP-100c Negative - , Fuji FP-100c Negatywny - Fuji FP-100c Negative -- , Fuji FP-100c Negatywne -- Fuji FP-3000b Negative , Fuji FP-3000b Negatywny Fuji FP-3000b Negative + , Fuji FP-3000b Ujemny + Fuji FP-3000b Negative ++ , Fuji FP-3000b Ujemny ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Ujemny +++ Fuji FP-3000b Negative - , Fuji FP-3000b Negatywny - Fuji FP-3000b Negative -- , Fuji FP-3000b Negatywne -- Fuji FP-3000b Negative Early , Fuji FP-3000b Negatywne Wczesny wzrost Full , Pełna Full (Allows Multi-Layers) , Pełny (Pozwala na wielowarstwowe) Full (Slower) , Pełny (Wolniejszy) Full Bottom/top , Pełne dno/góra Full Colors , Pełne kolory Full HD Frame Packing , Pakowanie ramek Full HD Full Layer Stack -Slow!- , Pełnowarstwowy stos - Powoli!- Full Side by Side Keep Uncompressed , Pełna strona po stronie Trzymaj bez kompresji Futuristic Bleak 1 , Futurystyczny Bleak 1 Futuristic Bleak 2 , Futurystyczny Bleak 2 Futuristic Bleak 3 , Futurystyczny Bleak 3 Futuristic Bleak 4 , Futurystyczny Bleak 4 G'MIC Operator , Operator G'MIC G/M Smoothness , G/M Gładkość Games & Demos , Gry i demonstracje Gamma Balance , Saldo gamma Gamma Equalizer , Korektor Gamma Generate Random-Colors Layer , Generowanie przypadkowej warstwy barwnej (Random-Colors Layer) Generic Fuji Astia 100 , Generyczne Fuji Astia 100 Generic Fuji Provia 100 , Generyczne Fuji Provia 100 Generic Fuji Velvia 100 , Generyczne Fuji Velvia 100 Generic Kodachrome 64 , Kodachrom ogólny 64 Generic Kodak Ektachrome 100 VS , Generyczny Kodak Ektachrome 100 VS Generic Skin Structure , Ogólna struktura skóry Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Tryb łagodny (nadpisuje minimalną jasność i minimalną czerwień: stosunek niebieski) Geometry , Geometria Global Mapping , Mapowanie globalne Gmicky (by Deevad) , Gmicky (przez Deevad) Gmicky (by Mahvin) , Gmicky (przez Mahvina) Going for a Walk , Idziemy na spacer Gold , Złoto Golden , Złoty Golden (bright) , Złoty (jasny) Golden (fade) , Złoty (blaknięcie) Golden (mono) , Złoty (mono) Golden (vibrant) , Złoty (żywy) Golden Gate , Złota Brama GoldFX - Bright Summer Heat , GoldFX - Jasny letni upał GoldFX - Hot Summer Heat , GoldFX - Gorące letnie ciepło GoldFX - Perfect Sunset 10min , GoldFX - Idealny zachód słońca 10min GoldFX - Summer Heat , GoldFX - Letnie upały Good Morning , Dzień dobry Gradient [Corners] , Gradient [Rogi] Gradient [Custom Shape] , Gradient [Niestandardowy kształt] Gradient [from Line] , Gradient [od linii] Gradient [Linear] , Gradient [liniowy] Gradient [Random] , Gradient [Losowo] Gradient Norm , Norma gradientu Gradient Preset , Wstępne ustawienie gradientu Gradient Smoothness , Gładkość gradientu Gradient Values , Wartości gradientowe Grain , Ziarno Grain (Highlights) , Ziarno (Highlights) Grain (Midtones) , Ziarno (Midtones) Grain (Shadows) , Ziarno (Shadows) Grain Extract , Ekstrakt zboża Grain Merge , Łączenie zboża Grain Only , Tylko ziarno Grain Scale , Skala ziarna Grain Tone Fading , Blaknięcie koloru ziarna Grain Type , Rodzaj ziarna Grainextract , Wyciąg z winogron Granularity , Granularność Graphic Colours , Kolory graficzne Graphic Novel , Powieść graficzna Graphix Colors , Kolory Graphix Grayscale , Skala szarości Greece , Grecja Green , Zielony Green 15 , Zielona 15 Green 2025 , Zielony 2025 Green Action , Zielone działanie Green Afternoon , Zielone popołudnie Green Blues , Zielony Niebieski Green Conflict , Zielony Konflikt Green Day 01 , Zielony dzień 01 Green Day 02 , Zielony Dzień 02 Green Factor , Czynnik zielony Green G09 , Zielony G09 Green Level , Poziom ekologiczny Green Light , Zielone światło Green Rotations , Zielone obroty Green Smoothness , Zielona gładkość Green Wavelength , Zielona Długość fali Green Yellow , Zielono-żółty Greenish Contrasty , Kontrast zielonkawy Grey , Szarość Greyscale , Skala szarości Grid , Siatka Grid [Cartesian] , Siatka [kartezjański] Grid [Hexagonal] , Siatka [sześciokątna] Grid [Triangular] , Siatka [trójkątna] Grid Divisions , Działy kratowe Grid Smoothing , Wygładzanie siatki Grid Width , Szerokość siatki Grow Alpha , Rozwijaj Alphę Guide As , Przewodnik Jak Guide Recovery , Przewodnik Odzyskiwanie H Cutoff , H Odcięcie Hair Locks , Zamki do włosów Half Bottom/top , Połowa dna / góra Half Side by Side , Half Side by Side Halftone Shapes , Kształty półtonów Hanoi Tower , Wieża Hanoi Hard , Twardy Hard Light , Twarde światło Hard Mix , Twarda mieszanka Hard Sketch , Szkic twardy Hard Teal Orange , Twardy Teal Orange Harsh Day , Surowy dzień Harsh Sunset , Surowy zachód słońca HDR Effect (Tone Map) , Efekt HDR (Tone Map) Heart , Serce Hearts , Serca Hearts (Outline) , Serca (kontur) Hedcut (Experimental) , Hedcut (eksperymentalny) Height , Wysokość Height (%) , Wysokość (%) Herderite , Herderyt Heulandite , Heulandit High , Wysoki High (Slower) , Wysoki (Wolniejszy) High Frequency , Wysoka częstotliwość High Frequency Layer , Warstwa wysokiej częstotliwości High Key , Wysoki Klucz High Quality , Wysoka jakość High Scale , Wysoka skala High Speed , Duża prędkość High Value , Wysoka wartość Higher Mask Threshold (%) , Wyższy próg maski (%) Highlight (%) , Podświetlenie (%) Highlights , Najważniejsze informacje Highlights Abstraction , Najważniejsze informacje Abstrakcja Highlights Brightness , Najważniejsze Jasność Highlights Color Intensity , Najważniejsze informacje o intensywności kolorów Highlights Crossover Point , Najważniejsze punkty na skrzyżowaniu Highlights Lightness , Podkreślenia Lekkość Highlights Protection , Ochrona przed zagrożeniami Highlights Selection , Wybór najważniejszych punktów Highlights Threshold , Wysokie wartości progowe Highlights Zone , Najważniejsze strefy Histogram Analysis , Analiza histogramowa Histogram Transfer , Przeniesienie histogramu Homogeneity , Jednolitość Hong Kong , Hongkong Hope Poster , Plakat nadziei Horisontal Length , Długość pozioma Horizontal , Horyzontalny Horizontal (%) , Poziomy (%) Horizontal Amount , Kwota horyzontalna Horizontal Array , Układ poziomy Horizontal Blur , Rozmycie poziome Horizontal Length , Długość pozioma Horizontal Size (%) , Wielkość pozioma (%) Horizontal Stripes , Paski poziome Horizontal Tiles , Płytki poziome Horizontal Warp Only , Tylko osnowa pozioma Horror Blue , Horror Niebieski Hot , Gorący Hot (256) , Gorący (256) House , Dom Householder , Właściciel domu HSI [all] , HSI [wszyscy] HSI [Intensity] , HSI [Intensywność] HSL [all] , HSL [wszyscy] HSL [Lightness] , HSL [Lekkość] HSL Adjustment , Regulacja HSL HSV [all] , HSV [wszyscy] HSV [Saturation] , HSV [Nasycenie] HSV [Value] , HSV [Wartość] HSV Select , HSV Wybierz Hue Factor , Czynnik barwy (Hue Factor) Hue Offset , Przesunięcie barwy (Hue Offset) Hue Smoothness , Hue Gładkość Human 2 , Człowiek 2 Human 1 , Człowiek 1 Human 2 , Człowiek 2 Hybrid Median - Medium Speed Softest Output , Hybrydowa Mediana - Średnia prędkość Najmniejsza wydajność Hypnosis , Hipnoza Iain Noise Reduction 2019 , Redukcja hałasu Iain 2019 Identity , Tożsamość Ignore , Ignoruj Ignore Current Aspect , Ignorowanie aspektów bieżących Illuminate 2D Shape , Oświetlenie kształtu 2D Illumination , Oświetlenie Illustration Look , Ilustracja Spójrz Image , Obrazek Image + Background , Obraz + tło Image + Colors (2 Layers) , Obraz + kolory (2 warstwy) Image + Colors (Multi-Layers) , Obraz + kolory (Multi-Layers) Image Contour Dimensions , Wymiary konturu obrazu Image Smoothness , Gładkość obrazu Image to Grab Color from (.Png) , Image to Grab Color z (.Png) Image Weight , Waga obrazu Import Data , Dane dotyczące przywozu Import RGB-565 File , Import pliku RGB-565 Impulses 5x5 , Impulsy 5x5 Impulses 7x7 , Impulsy 7x7 Impulses 9x9 , Impulsy 9x9 Inch , Cale Include Opacity Layer , Włączyć warstwę kryjącą IncreaseChroma1 , ZwiększyćChroma1 Increasing , Rosnące Industrial 33 , Przemysłowy 33 Influence of Color Samples (%) , Wpływ próbek koloru (%) Information , Informacja Init. Resolution , Init. Uchwała Init. Type , Init. Typ Init. With High Gradients Only , Init. Tylko z wysokimi nachyleniami Initial Density , Gęstość początkowa Initialization , Inicjalizacja Inner , Wewnątrz Inner Fading , Blaknięcie wewnętrzne Inner Length , Długość wewnętrzna Inner Radius , Promień wewnętrzny Inner Radius (%) , Promień wewnętrzny (%) Inner Shade , Odcień wewnętrzny Inpaint [Holes] , Farba [Dziury] Inpaint [Morphological] , Inpaint [Morfologiczny] Input , Wejście: Input Folder , Folder wejściowy Input Frame Files Name , Ramka wejściowa Nazwa pliku Input Guide Color , Kolor przewodnika wejściowego Input Layers , Warstwy wejściowe Input Transparency , Wejście Przejrzystość Input Type , Typ wejścia Insert New CLUT Layer , Wstawić nową warstwę zamykającą Inside , Wewnątrz Inside Color , Kolor wewnętrzny Instant [Consumer] (54) , Błyskawiczny [Konsument] (54) Intarsia , Intarsja Intensity , Intensywność pomocy Intensity of Purple Fringe , Intensywność fioletowej grzywki Inter-Frames , Między ramami Interlace Horizontal , Interlace Poziomy Interlace Vertical , Interlace Pionowy Interpolate , Interpolować Interpolation , Interpolacja Interpolation Type , Typ interpolacji Inverse , Odwróć się Inverse Depth Map , Mapa odwrotnej głębokości Inverse Radius , Odwrotny promień Inverse Transform , Odwrotna transformacja Inversions , Inwersje Invert Background / Foreground , Odwrócenie tła / pierwszy plan Invert Blur , Odwrócenie rozmycia Invert Canvas Colors , Odwróć kolory płótna Invert Colors , Odwróć kolory Invert Image Colors , Odwróć kolory obrazu Invert Luminance , Odwrócona luminancja Invert Mask , Odwróć maskę Inward , Wewnątrz Isophotes , Izofoty Isotropic , Izotropowy Iteration , Iteracja Iterations , Iteracje Japanese Maple Leaf , Japoński liść klonowy Jet (256) , Odrzutowiec (256) JPEG Artefacts , Artefakty JPEG Just Peachy , Tylko Peachy Kaleidoscope [Blended] , Kalejdoskop [mieszany] Kaleidoscope [Polar] , Kalejdoskop [Polar] Kaleidoscope [Symmetry] , Kalejdoskop [Symetria] Kandinsky: Squares with Concentric Circles , Kandinsky: Skwery z koncentrycznymi kołami Keep , Trzymaj Keep Aspect Ratio , Zachowaj proporcje proporcje proporcji Keep Base Layer as Input Background , Zachowanie warstwy bazowej jako tła wejściowego Keep Borders Square , Trzymaj Plac Graniczny Keep Color Channels , Zachowaj kanały kolorów Keep Colors , Zachowaj kolory Keep Detail , Zachowaj szczegóły Keep Detail Layer Separate , Oddzielenie warstwy szczegółów Keep Iterations as Different Layers , Zachowaj Iteracje jako różne warstwy Keep Layers Separate , Oddzielenie warstw Keep Original Image Size , Zachowaj oryginalny rozmiar obrazu Keep Original Layer , Zachowaj oryginalną warstwę Keep Tiles Square , Trzymaj płytki na placu Keep Transparency in Output , Zachowanie przejrzystości w produkcji Kernel Multiplier , Mnożnik jądra (Kernel Multiplier) Kernel Type , Typ jądra Key Factor , Czynnik kluczowy Key Frame Rate , Kluczowa stawka ramowa Key Smoothness , Gładkość klucza Keypoint Influence (%) , Wpływ punktu kluczowego (%) Klee: Death and Fire , Klee: Śmierć i ogień Klee: In the Style of Kairouan , Klee: W stylu Kairouan Klee: Polyphony 2 , Klee: Polifonia 2 Klee: Red Waistcoat , Klee: Czerwona kamizelka Kuwahara , Kuwejtara Kuwahara on Painting , Kuwejtara na Malarstwie Lab , Laboratorium Lab (Chroma Only) , Laboratorium (tylko dla aromatu) Lab (Distinct) , Laboratorium (Distinct) Lab (Luma Only) , Laboratorium (tylko Luma) Lab (Luma/Chroma) , Laboratorium (Luma/Chroma) Lab (Mixed) , Laboratorium (mieszane) Lab [a-Chrominance] , Laboratorium [a-Chrominance] Lab [ab-Chrominances] , Laboratorium [ab-Chrominances] Lab [all] , Laboratorium [wszystkie] Lab [b-Chrominance] , Laboratorium [b-Chrominance] Lab [Lightness] , Laboratorium [Lekkość] Landscape , Krajobraz Landscape-10 , Krajobraz-10 Landscape-3 , Krajobraz-3 Landscape-4 , Krajobraz-4 Landscape-5 , Krajobraz-5 Landscape-6 , Krajobraz 6 Landscape-7 , Krajobraz-7 Landscape-8 , Krajobraz-8 Landscape-9 , Krajobraz-9 Laplacian , Laplacjan Large , Duże Large Noise , Duży hałas Last , Ostatni Last Frame , Ostatnia ramka Late Afternoon Wanderlust , Późnym popołudniem Wanderlust Late Sunset , Późny zachód słońca Lava Lamp , Lampka lawowa Layer , Warstwa Layer Processing , Przetwarzanie warstw Layers to Tiles , Warstwy do płytek Lch [all] , Lch [wszyscy] Leaf , Liść Leaf Color , Kolor liści Leaf Opacity (%) , Nieprzezroczystość liści (%) Leak Type , Rodzaj przecieku Left , W lewo Left Foreground , Lewy pierwszy plan Left / Right Blur (%) , Rozmycie w lewo / w prawo (%) Left and Right Background , Lewe i prawe tło Left and Right Foreground , Lewy i prawy pierwszy plan Left and Right Image Streams , Lewy i prawy strumień obrazu Left Diagonal Foreground , Lewy przekątny Pierwszy plan Left Foreground , Lewy pierwszy plan Left Position , Pozycja lewa Left Side Orientation , Ukierunkowanie boczne w lewo Left Slope , Lewy stok Left Stream Only , Tylko Left Stream Length , Długość Lenticular Density LPI , Gęstość Soczewkowa LPI Lenticular Orientation , Orientacja soczewicowa Lenticular Print , Druk soczewkowy (Lenticular Print) Level , Poziom Level Frequency , Poziom Częstotliwość Levels , Poziomy Lifestyle & Commercial-1 , Styl życia i reklama-1 Lifestyle & Commercial-10 , Styl życia i reklama-10 Lifestyle & Commercial-3 , Styl życia i reklama-3 Lifestyle & Commercial-5 , Styl życia i reklama-5 Lifestyle & Commercial-6 , Styl życia i reklama-6 Lifestyle & Commercial-9 , Styl życia i handel-9 Light , Światło Light (blown) , Światło (dmuchane) Light Angle , Kąt świetlny Light Color , Kolor światła Light Direction , Kierunek światła Light Effect , Efekt świetlny Light Glow , Jasny blask Light Grey , Jasnoszary Light Leaks , Lekkie wycieki Light Motive , Lekki motyw Light Patch , Łata świetlna Light Rays , Promienie świetlne Light Smoothness , Gładkość światła Light Strength , Wytrzymałość na światło Light Type , Typ światła Lighten , Rozjaśnij Lighten Edges , Krawędzie świetlne Lighter , Zapalniczka Lighting , Oświetlenie Lighting Angle , Kąt oświetlenia Lightness , Lekkość Lightness (%) , Lekkość (%) Lightness Factor , Współczynnik lekkości Lightness Level , Poziom lekkości Lightness Max (%) , Lekkość Max (%) Lightness Min (%) , Lekkość Min (%) Lightness Shift , Przesunięcie lekkości Lightness Smoothness , Lekkość Gładkość Smoothness Lightning , Błyskawica Limit Hue Range , Graniczny zakres barwy Line , Linia Line Opacity , Linia Nieprzezroczystość Line Precision , Precyzja linii Linear Burn , Oparzenie liniowe Linear Light , Światło liniowe Linear RGB , Liniowy RGB Linear RGB [All] , Linear RGB [Wszystkie] Linear RGB [Blue] , Linear RGB [Niebieski] Linear RGB [Green] , Linear RGB [Zielony] Linearity , Liniowość Lineart + Color Spots , Lineart + kolorowe plamy Lineart + Color Spots + Extrapolated Colors , Lineart + Kolorowe plamy + Kolory ekstrapolowane Lineart + Colors , Lineart + Kolory Lineart + Extrapolated Colors , Lineart + Ekstrapolowane kolory Lines , Linie Lines (256) , Linie (256) Linf-Norm , Link-Norm Lion , Lew Lissajous [Animated] , Lissajous [Animowany] Lissajous Spiral , Spirala Lissajous Little , Mały Little Cyan , Mały Cyjan Little Magenta , Mała Magenta Little Red , Mała czerwień Little Yellow , Mały Żółty LN Amplititude , LN Amplituła LN Amplitude , LN Amplituda LN Average-Smoothness , LN Średnia - Gładkość LN Size , Wielkość LN Local Normalisation , Normalizacja lokalna Local Contrast , Kontrast lokalny Local Contrast Effect , Lokalny efekt kontrastu Local Contrast Enhance , Lokalne wzmocnienie kontrastu Local Contrast Enhancement , Wzmocnienie lokalnego kontrastu Local Contrast Style , Lokalny Styl Kontrastu Local Normalization , Lokalna normalizacja Local Orientation , Lokalna orientacja Local Processing , Przetwarzanie lokalne Local Similarity Mask , Maska podobieństwa lokalnego Local Variance Normalization , Normalizacja lokalnej zmienności Lock Return Scaling to Source Layer , Blokada Powrót skalowania do warstwy źródłowej Lock Source , Źródło zamka Lock Uniform Sampling , Jednolite pobieranie próbek na zamek Log(z) , Dziennik(z) Logarithmic Distortion , Zakłócenia logarytmiczne Logarithmic Distortion Axis Combination for X-Axis , Logarytmiczna kombinacja osi zniekształceń dla osi X-Axis Logarithmic Distortion Axis Combination for Y-Axis , Logarytmiczna kombinacja osi zniekształceń dla osi Y Logarithmic Distortion X-Axis Direction , Zniekształcenia logarytmiczne Kierunek X-Axis Logarithmic Distortion Y-Axis Direction , Zniekształcenia logarytmiczne Kierunek Y-Axis Lomography Redscale 100 , Lomografia Czerwona skala 100 Lomography X-Pro Slide 200 , Lomografia X-Pro Slide 200 Lookup Factor , Współczynnik wyszukiwania Lookup Size , Rozmiar Lookup Loop Method , Metoda pętli Low , Niski poziom Low Bias , Niski poziom uprzedzenia Low Contrast Blue , Niski Kontrast Niebieski Low Frequency , Niska częstotliwość Low Frequency Layer , Warstwa niskiej częstotliwości Low Key , Niski klawisz Low Key 01 , Niski klawisz 01 Low Scale , Niska skala Low Value , Niska wartość Lower Layer Is the Bottom Layer for All Blends , Dolna warstwa jest dolną warstwą dla wszystkich mieszanek. Lower Mask Threshold (%) , Dolny próg maski (%) Lower Side Orientation , Dolna orientacja boczna Lowercase Letters , Małymi literami Lowlights Crossover Point , Skrzyżowanie świateł dolnych Lowres CLUT , Zamknięcie Lowres Lucky 64 , Szczęśliwy 64 Luma Noise , Hałas Lumy Luminance , Luminancja Luminance Factor , Współczynnik luminancji Luminance Level , Poziom luminancji Luminance Only , Tylko Luminancja Luminance Only (Lab) , Tylko luminancja (laboratorium) Luminance Only (YCbCr) , Tylko luminancja (YCbCr) Luminance Shift , Zmiana luminancji Luminance Smoothness , Luminancja Gładkość Luminosity from Color , Jasność od koloru Luminosity Type , Rodzaj natężenia światła Lush Green Summer , Bujne zielone lato LUTs Pack , Pakiet LUT Lylejk's Painting , Malarstwo Lylejk's Painting Magenta Coffee , Kawa Magenta Magenta Day , Dzień Magenty Magenta Day 01 , Dzień Magenty 01 Magenta Factor , Czynnik Magenta Magenta Smoothness , Magenta Gładkość Magenta Yellow , Magenta Żółty Magic Details , Magiczne szczegóły Magnitude / Phase , Wielkość / faza Mail , Poczta Make Hue Depends on Region Size , Make Hue zależy od wielkości regionu Make Seamless [Diffusion] , Make Seamless [Dyfuzja] Make Seamless [Patch-Based] , Make Seamless [Oparte na łatach] Make Squiggly , Zrób Squiggly Make Up , Makijaż Manual , Podręcznik Manual Controls , Sterowanie ręczne Map , Mapa Map Tones , Tony na mapie Mapping , Mapowanie Marble , Marmur Margin (%) , Marża (%) Mascot Image , Obrazek maskotki Masculine , Męski Mask , Maska Mask + Background , Maska + tło Mask as Bottom Layer , Maska jako warstwa spodnia (Bottom Layer) Mask By , Maska przez Mask Color , Kolor maski Mask Contrast , Kontrast maskowy Mask Creator , Twórca maski Mask Dilation , Dylatacja maski Mask Size , Rozmiar maski Mask Smoothness (%) , Maska Gładkość (%) Mask Type , Typ maski Masked Image , Obraz maskowy Masking , Maskowanie Match Colors With , Dopasuj kolory Z Matching Precision (Smaller Is Faster) , Dopasowanie precyzji (Smaller Is Faster) Math Symbols , Symbole matematyczne Matrix , Matryca Max Angle , Kąt Maxa Max Angle Deviation (deg) , Maksymalne odchylenie kątowe (deg) Max Area , Maksymalny obszar Max Curve , Krzywa Maxa Max Cut (%) , Maksymalne cięcie (%) Max Iterations , Max. Iteracje Max Length (%) , Długość maksymalna (%) Max Offset (%) , Maksymalny offset (%) Max Threshold , Maksymalny próg Maximal Area , Maksymalny obszar Maximal Color Saturation , Maksymalne nasycenie kolorów Maximal Highlights , Maksymalne oświetlenie Maximal Radius , Maksymalny promień Maximal Seams per Iteration (%) , Maksymalne szwy na powtórzenie (%) Maximal Size , Maksymalny rozmiar Maximal Value , Wartość maksymalna Maximum , Maksymalnie Maximum Dimension , Maksymalny wymiar Maximum Image Size , Maksymalny rozmiar obrazu Maximum Number of Image Colors , Maksymalna liczba kolorów obrazu Maximum Number of Output Layers , Maksymalna liczba warstw wyjściowych Maximum Red:Blue Ratio in the Fringe , Maksymalny współczynnik czerwieni: Niebieski na obrzeżach Maximum Saturation , Maksymalne nasycenie Maximum Size Factor , Maksymalny współczynnik wielkości Maximum Value , Wartość maksymalna Maze Type , Typ labiryntu Mean Color , Średni kolor Mean Curvature , Średnia krzywizna Median , Mediana Median (beware: Memory-Consuming!) , Mediana (uważaj: Pamięć-zabsorbująca!) Medium 3 , Średnia 3 Medium Details Smoothness , Średnie szczegóły Gładkość Medium Details Threshold , Średni poziom szczegółowości Próg Medium Frequency Layer , Warstwa średniej częstotliwości Medium Scale (Original) , Średnia skala (Oryginalna) Medium Scale (Smoothed) , Średnia skala (wygładzona) Memories , Wspomnienia Merge Brightness / Colors , Połączyć jasność / kolory Merge Layers? , Połączyć warstwy? Merging Mode , Tryb łączenia Merging Option , Opcja połączenia Merging Steps , Etapy łączenia Mess with Bits , Bałagan z bitami Metallic Look , Metaliczny wygląd Method , Metoda Metric , Metryczny Micro/macro Details Adjusted , Mikro/makro Szczegóły Dostosowane Mid Noise , Hałas środkowy Mid Offset , Przesunięcie środkowe Mid Tone Contrast , Kontrast Środkowego Tonu Middle Grey , Szarość środkowa Middle Scale , Skala średnia Midtones Color Intensity , Tony średnie Intensywność koloru Mighty Details , Potężne szczegóły Min Angle Deviation (deg) , Min. odchylenie kątowe (deg) Min Area % , Obszar Min. % Min Cut (%) , Minimalne cięcie (%) Min Length (%) , Długość minimalna (%) Min Offset (%) , Min. Przesunięcie (%) Min Threshold , Min. próg Mineral Mosaic , Mozaika mineralna Minesweeper , Zamiatarka górnicza Minimal Area , Minimalna powierzchnia Minimal Area (%) , Minimalna powierzchnia (%) Minimal Color Intensity , Minimalna intensywność koloru Minimal Highlights , Minimalne oświetlenie Minimal Path , Minimalna ścieżka Minimal Radius , Minimalny promień Minimal Region Area , Minimalny obszar regionu Minimal Scale (%) , Skala minimalna (%) Minimal Shape Area , Minimalny obszar kształtu Minimal Size , Minimalna wielkość Minimal Size (%) , Minimalna wielkość (%) Minimal Stroke Length , Minimalna długość skoku Minimal Value , Wartość minimalna Minimalist Caffeination , Minimalistyczna kofeinacja Minimum Brightness , Minimalna jasność Minimum Red:Blue Ratio in the Fringe , Minimalny stosunek czerwieni do błękitu na obrzeżach Mirror , Lustro Mirror Effect , Efekt lustra Mirror X , Lustro X Mirror Y , Lustro Y Mixed Mode , Tryb mieszany Mixer [CMYK] , Mikser [CMYK] Mixer [HSV] , Mikser [HSV] Mixer Mode , Tryb miksera Mixer Style , Styl miksera Mode , Tryb Modern Film , Film współczesny Modulo Value , Modulo Wartość Moiré Animation , Moiré Animacja Moire Removal , Usuwanie wilgoci Moire Removal Method , Metoda usuwania wilgoci Mondrian: Composition in Red-Yellow-Blue , Mondrian: Skład w kolorze czerwono-żółto-niebieskim Mondrian: Evening; Red Tree , Mondrian: Wieczór; Red Tree Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore o zmierzchu Monet: Water-Lily Pond , Monet: Staw wodno-lilijny Monet: Wheatstacks - End of Summer , Monet: Stogi pszenicy - koniec lata Mono Tinted , Mono Przyciemniany Mono-Directional , Monokierunkowy Monochrome , Monochromatyczne Monochrome 1 , Monochromatyczny 1 Monochrome 2 , Monochromatyczny 2 Montage Type , Rodzaj montażu Moonlight , Światło księżyca Moonlight 01 , Światło księżycowe 01 Moonrise , Wschód księżyca Morning 6 , Dzień dobry 6 Morph [Interactive] , Morph [Interaktywny] Morph Layers , Warstwy morfowe Morphological - Fastest Sharpest Output , Morfologiczny - Najszybsze ostre wyjście Morphological Closing , Zamknięcie morfologiczne Morphological Filter , Filtr morfologiczny Morphology Painting , Morfologia Malarstwo Morphology Strength , Morfologia Wytrzymałość Mosaic , Mozaika Most , Większość Mostly Blue , Głównie niebieski Motion Analyzer , Analizator ruchu Motion-Compensated , Wniosek-rekompensata Much , Dużo Much Blue , Dużo niebieskiego Multi-Layer Etch , Trawienie wielowarstwowe Multiple Colored Shapes Over Transp. BG , Wielokolorowe kształty przezroczyste. BG Multiple Layers , Wiele warstw Multiplier , Mnożnik Multiply , Pomnożyć Multiscale Operator , Operator multiskalowy Muted 01 , Wyciszony 01 Muted Fade , Wyciszony blask Name , Nazwa Natural (vivid) , Naturalny (żywy) Nature & Wildlife-1 , Przyroda i dzika przyroda-1 Nature & Wildlife-10 , Przyroda i dzika przyroda-10 Nature & Wildlife-2 , Przyroda i dzika natura-2 Nature & Wildlife-3 , Przyroda i dzika przyroda-3 Nature & Wildlife-4 , Przyroda i dzika natura-4 Nature & Wildlife-5 , Przyroda i dzika przyroda-5 Nature & Wildlife-6 , Przyroda i dzika natura-6 Nature & Wildlife-7 , Przyroda i dzika natura-7 Nature & Wildlife-8 , Przyroda i dzika przyroda-8 Nature & Wildlife-9 , Przyroda i dzika przyroda-9 Nb Circles Surrounding , Nb Kręgi Otoczenie Near Black , Blisko Czarnego Nearest , Najbliższy Nearest Neighbor , Najbliższy sąsiad Negation , Negacja Negative , Negatywny Negative [Color] (13) , Negatywny [Kolor] (13) Negative [New] (39) , Negatywny [nowy] (39) Negative [Old] (44) , Negatywny [Stary] (44) Negative Color Abstraction , Abstrakcja kolorów ujemnych Negative Colors , Kolory ujemne Negative Effect , Negatywny wpływ Neighborhood Size (%) , Sąsiedztwo Wielkość (%) Neighborhood Smoothness , Sąsiedztwo Gładkość Nemesis , Nemezis Neon Lightning , Błyskawica neonowa Neutral Color , Neutralny kolor Neutral Teal Orange , Neutralny Teal Orange New Curves [Interactive] , Nowe krzywe [Interaktywne] Newspaper , Gazeta Night 01 , Noc 01 Night Blade 4 , Nocne Ostrze 4 Night From Day , Noc Od dnia Night King 141 , Nocny Król 141 Night Spy , Nocny Szpieg Nine Layers , Dziewięć warstw No Masking , Nie Maskowanie No Recovery , Brak odzysku No Rescaling , Nie Rescaling No Transparency , Brak przejrzystości Noise , Hałas Noise [Additive] , Hałas [Dodatkowy] Noise [Perlin] , Hałas [Perlin] Noise [Spread] , Hałas [Rozproszony] Noise A , Hałas A Noise B , Hałas B Noise C , Hałas C Noise D , Hałas D Noise Level , Poziom hałasu Noise Scale , Skala hałasu Noise Type , Rodzaj hałasu Non / No , Nie / Nie Non-Linearity , Nieliniowość Non-Rigid , Niesztywny None , Brak None (Allows Multi-Layers) , Brak (pozwala na wielowarstwowe) None- Skip , Non - Skip Norm Type , Typ normalny Normal , Normalny Normal Map , Mapa normalna Normal Output , Wyjście normalne Normalization , Normalizacja Normalize , Normalizacja Normalize Brightness , Normalizacja jasności Normalize Colors , Normalizacja kolorów Normalize Illumination , Normalizacja oświetlenia Normalize Input , Normalizacja danych wejściowych Normalize Luma , Normalizacja Lumy Normalize Scales , Normalizacja wagi Nostalgia Honey , Nostalgia Miód Nostalgic , Nostalgiczny Nothing , Nic Number , Numer Number of Added Frames , Liczba dodanych ramek Number of Angles , Liczba kątów Number of Clusters , Liczba klastrów Number of Colors , Liczba kolorów Number of Frames , Liczba ramek Number of Inter-Frames , Liczba ramek międzysystemowych Number of Iterations per Scale , Liczba Iteracji na skali Number of Key-Frames , Liczba ramek kluczowych Number of Levels , Liczba poziomów Number of Matches (Coarsest) , Liczba meczów (Najgrubsze) Number of Matches (Finest) , Liczba meczów (Finest) Number of Orientations , Liczba kierunków Number Of Rays , Liczba promieni Number of Scales , Liczba podziałek Number of Sizes , Liczba rozmiarów Number of Streaks , Liczba smug Number of Teeth , Liczba zębów Number of Tones , Liczba tonów Object Animation , Animacja obiektu Object Ratio , Stosunek liczby obiektów Object Tolerance , Tolerancja obiektu Octagon , Oktagon Octagonal , Ośmiokątny Octaves , Oktawy Octogon , Ośmiornica Oddness (%) , Dziwność (%) Offset (%) , Przesunięcie (%) Offset Angle Rays Layer 1 , Przesunięcie kątowe warstwy promieniowej 1 Offset Angle Rays Layer 2 , Przesunięcie kątowe warstwy promieniowej 2 Old Method - Slowest , Stara metoda - Najwolniejszy Old Photograph , Stara fotografia Old West , Stary Zachód Oldschool 8bits , Oldschool 8 bitów ON1 Photography (90) , ON1 Fotografia (90) One Layer , Jedna warstwa One Layer (Horizontal) , Jedna warstwa (pozioma) One Layer (Vertical) , Jedna warstwa (pionowa) One Layer per Single Color , Jedna warstwa na jeden kolor One Layer per Single Region , Jedna warstwa na jeden region One Thread , Jeden wątek Only Leafs , Tylko Leafs Only Red , Tylko czerwony Only Red and Blue , Tylko czerwony i niebieski Opacity , Nieprzezroczystość Opacity (%) , Nieprzezroczystość (%) Opacity as Heightmap , Nieprzezroczystość jako mapa wysokości Opacity Contours , Kontury nieprzezroczystości Opacity Factor , Współczynnik zmętnienia Opacity Gain , Wzmocnienie zmętnienia Opacity Gamma , Nieprzezroczystość Gamma Opacity Snowflake , Nieprzezroczystość Płatek śniegu Opacity Threshold (%) , Próg zmętnienia (%) Opaque Pixels , Nieprzezroczyste piksele Opaque Regions on Top Layer , Regiony nieprzejrzyste na wierzchniej warstwie Opaque Skin , Nieprzezroczysta skóra Opening , Otwarcie Operation Yellow , Operacja Żółty Opposing , Sprzeciwiający się Optimized Lateral Inhibition , Zoptymalizowana Inhibicja Boczna Orange Tone , Tonacja pomarańczowa Orange Underexposed , Pomarańczowy Nienaświetlony Oranges , Pomarańcze Order , Zamówienie Order By , Zamówienie przez Orientation , Orientacja Orientation Coherence , Orientacja Spójność Orientation Only , Tylko orientacja Orientations , Orientacja Original , Oryginał Original - (Opening + Closing)/2 , Oryginalny - (Otwarcie + Zamknięcie)/2 Original - Erosion , Oryginał - Erozja Original - Opening , Oryginał - Otwarcie Orthogonal Radius , Promień ortogonalny Others (69) , Inni (69) Ouline Color , Kolor Ouline Outer , Na zewnątrz Outer Fading , Zewnętrzne blaknięcie Outer Length , Długość zewnętrzna Outer Radius , Promień zewnętrzny Outline , Zarys Outline (%) , Obrys (%) Outline Color , Kolor konturu Outline Contrast , Kontrast konturu Outline Opacity , Szkic nieprzejrzystości Outline Size , Rozmiar zarysu Outline Smoothness , Obrys Gładkość Outline Thickness , Obrys Grubość Outlined , W zarysie Output , Wyjście Output As , Wyjście Jak Output as Files , Wyjście jako plik Output as Frames , Wyjście w postaci ramek Output as Multiple Layers , Wyjście jako wielowarstwowe Output as Separate Layers , Wyjście jako oddzielne warstwy Output Ascii File , Wyjście Plik Ascii Output Chroma NR , Wyjście Chroma NR Output CLUT , ZAMKNIĘCIE Wyjścia Output CLUT Resolution , Rozdzielczość ZAMKNIĘCIA Wyjścia Output Coordinates File , Plik współrzędnych wyjściowych Output Corresponding CLUT , Wyjście Odpowiadające ZAMKNIĘCIE Output Directory , Katalog wyjściowy Output Each Piece on a Different Layer , Wyjście Każdy element na innej warstwie Output Filename , Nazwa pliku wyjściowego Output Files , Pliki wyjściowe Output Folder , Folder wyjściowy Output Format , Format wyjściowy Output Frames , Ramy wyjściowe Output Height , Wysokość wyjściowa Output HTML File , Wyjście Plik HTML Output Layers , Warstwy wyjściowe Output Mode , Tryb wyjściowy Output Multiple Layers , Wyjście Wielowarstwowe Output Preset as a HaldCLUT Layer , Wyjście zaprogramowane jako warstwa HaldCLUT Output Region Delimiters , Region wyjściowy Ograniczniki Output Saturation , Nasycenie wyjściowe Output Sharpening , Ostrzenie wyjściowe Output Stroke Layer On , Wyjściowa warstwa pociągowa włączona Output to Folder , Wyjście do folderu Output Type , Typ wyjścia Output Width , Szerokość wyjściowa Outside , Na zewnątrz Outside Color , Kolor zewnętrzny Outward , Na zewnątrz Overall Blur , Całkowite rozmycie Overall Contrast , Kontrast ogólny Overall Lightness , Ogólna lekkość Overlap (%) , Nakładanie się (%) Overlay , Nakładka Oversample , Nadpróba Overshoot , Przesadzenie Pack , Pakiet Paint , Farba Paint Effect , Efekt malarski Paint Splat , Płytka farby Painter's Smoothness , Gładkość malarza Painter's Touch Sharpness , Ostrość dotykowa malarza Painting , Malarstwo Painting Opacity , Krycie malarskie Paladin , Paladyn Paladin 1875 , Paladyn 1875 Paper Texture , Tekstura papieru Parallel Processing , Przetwarzanie równoległe Parrots , Papugi Passing By , Przechodzenie przez Pastell Art , Sztuka pastelowa Patch Measure , Miara łatek Patch Size , Rozmiar łatki Patch Size for Analysis , Rozmiar łatki do analizy Patch Size for Synthesis , Rozmiar łatki do syntezy Patch Size for Synthesis (Final) , Rozmiar plastrów do syntezy (końcowy) Patch Smoothness , Łata Gładkość Patch Variance , Wariacja plastyczna Pattern , Wzór: Pattern Angle , Kąt Wzorca Pattern Type , Typ wzoru Pattern Variation 1 , Zmiana wzoru 1 Pattern Variation 2 , Wariacja wzoru 2 Pattern Variation 3 , Zmiana wzoru 3 Pattern Weight , Wzór Waga Pattern Width , Szerokość wzorca PCA Transfer , Przeniesienie PCA Pea Soup , Zupa grochowa Pen Drawing , Rysunek długopisu Penalize Patch Repetitions , Karanie powtórzeń plastrów Pencil , Ołówek Pencil Amplitude , Amplituda ołówka Pencil Portrait , Portret ołówkowy Pencil Size , Rozmiar ołówka Pencil Smoother Edge Protection , Ochrona ołówka przed wygładzaniem krawędzi Pencil Smoother Sharpness , Ołówek Bardziej gładki Ostrość Pencil Smoother Smoothness , Ołówek Gładszy Gładszy Smoothness Pencil Type , Typ ołówka Pencils , Ołówki Percent of Image Half-Hypotenuse (%) , Procentowy udział Obrazu Hipotensja połowiczna (%) Periodic , Okresowo Periodic Dots , Kropki okresowe Periodicity , Okresowość Perserve Luminance , Zachowaj luminancję Perspective , Perspektywa Perturbation , Perturbacja Petals , Płatki Phase , Faza Phone , Telefon Photoillustration , Fotoillustracja Picasso: Seated Woman , Picasso: Siedząca Kobieta Piece Complexity , Złożoność utworu Piece Size (px) , Rozmiar kawałka (px) Pixel Sort , Sortowanie pikseli Pixel Values , Wartości pikseli Placement , Umieszczenie Plane , Samolot Plasma , Plazma Plasma Effect , Efekt plazmowy Plot Type , Typ działki Point #0 , Punkt #0 Point #1 , Punkt #1 Point #2 , Punkt #2 Point #3 , Punkt #3 Point 1 , Punkt 1 Point 2 , Punkt 2 Points , Punkty Polar Transform , Transformacja biegunowa Polaroid 665 Negative , Polaroid 665 Negatywny Polaroid 665 Negative + , Polaroid 665 Negatywny + Polaroid 665 Negative - , Polaroid 665 Negatywny - Polaroid 665 Negative HC , Polaroid 665 Ujemny HC Polaroid 669 Cold , Polaroid 669 Zimny Polaroid 669 Cold + , Polaroid 669 Zimny + Polaroid 669 Cold - , Polaroid 669 Zimny - Polaroid 669 Cold -- , Polaroid 669 Zimny... Polaroid 690 Cold , Polaroid 690 Zimny Polaroid 690 Cold - , Polaroid 690 Zimny - Polaroid 690 Cold -- , Polaroid 690 Zimny... Polaroid 690 Warm , Polaroid 690 Ciepły Polaroid 690 Warm + , Polaroid 690 Ciepły + Polaroid 690 Warm ++ , Polaroid 690 Ciepły ++ Polaroid 690 Warm - , Polaroid 690 Ciepły - Polaroid 690 Warm -- , Polaroid 690 Ciepły... Polaroid Polachrome , Polaroid Polachrom Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ Zimno ++ Polaroid PX-100UV+ Cold +++ , Polaroid PX-100UV+ Zimno +++ Polaroid PX-100UV+ Warm , Polaroid PX-100UV+ Ciepły Polaroid PX-100UV+ Warm + , Polaroid PX-100UV+ Ciepło + Polaroid PX-100UV+ Warm ++ , Polaroid PX-100UV+ Ciepły ++ Polaroid PX-100UV+ Warm +++ , Polaroid PX-100UV+ Ciepły +++ Polaroid PX-100UV+ Warm - , Polaroid PX-100UV+ Ciepły - Polaroid PX-100UV+ Warm -- , Polaroid PX-100UV+ Ciepły -- Polaroid PX-680 Cold , Polaroid PX-680 Zimny Polaroid PX-680 Cold ++a , Polaroid PX-680 Zimny ++a Polaroid PX-680 Warm , Polaroid PX-680 Ciepły Polaroid PX-680 Warm + , Polaroid PX-680 Ciepły + Polaroid PX-680 Warm ++ , Polaroid PX-680 Ciepłe ++ Polaroid PX-680 Warm - , Polaroid PX-680 Ciepły - Polaroid PX-680 Warm -- , Polaroid PX-680 Ciepły -- Polaroid PX-70 Cold , Polaroid PX-70 Zimny Polaroid PX-70 Cold + , Polaroid PX-70 Zimny + Polaroid PX-70 Cold ++ , Polaroid PX-70 Zimny ++ Polaroid PX-70 Cold -- , Polaroid PX-70 Zimny -- Polaroid PX-70 Warm , Polaroid PX-70 Ciepły Polaroid PX-70 Warm + , Polaroid PX-70 Ciepły + Polaroid PX-70 Warm ++ , Polaroid PX-70 Ciepły ++ Polaroid PX-70 Warm - , Polaroid PX-70 Ciepły - Polaroid PX-70 Warm -- , Polaroid PX-70 Ciepły -- Polaroid Time Zero (Expired) , Czas Polaroida Zerowy (wygasły) Polaroid Time Zero (Expired) + , Czas Polaroida Zerowy (wygasający) + Polaroid Time Zero (Expired) ++ , Czas Polaroida Zerowy (wygasający) ++ Polaroid Time Zero (Expired) - , Czas Polaroida Zero (wygasły) - Polaroid Time Zero (Expired) -- , Czas Polaroida Zero (wygasły) -- Polaroid Time Zero (Expired) --- , Czas polaroidowy zero (wygasły) --- Polaroid Time Zero (Expired) Cold , Czas Polaroida Zerowy (wygasły) Zimny Polaroid Time Zero (Expired) Cold - , Czas Polaroida Zero (wygasły) Zimno - Polaroid Time Zero (Expired) Cold -- , Polaroid Czas Zero (wygasł) Zimno -- Polaroid Time Zero (Expired) Cold --- , Polaroid Czas Zero (wygasły) Zimno --- Pole Lat , Polak Lat Pole Long , Długi Polak Pole Rotation , Obrót bieguna Polka Dots , Polka Kropki Pollock: Convergence , Pollock: Konwergencja Polygonize [Energy] , Poligonize [Energia] Portrait , Portret Portrait Retouching , Retusz portretowy Portrait-1 , Portret-1 Portrait-2 , Portret-2 Portrait-3 , Portret-3 Portrait-4 , Portret-4 Portrait-5 , Portret-5 Portrait-6 , Portret-6 Portrait-7 , Portret-7 Portrait-8 , Portret-8 Portrait-9 , Portret-9 Portrait0 , Portret0 Portrait1 , Portret1 Portrait10 , Portret10 Portrait2 , Portret2 Portrait3 , Portret3 Portrait4 , Portret4 Portrait5 , Portret5 Portrait6 , Portret6 Portrait7 , Portret7 Portrait8 , Portret8 Portrait9 , Portret9 Position , Stanowisko Position X (%) , Pozycja X (%) Position X Origin (%) , Pozycja X Pochodzenie (%) Position Y (%) , Pozycja Y (%) Position Y Origin (%) , Pozycja Y Pochodzenie (%) Positive , Pozytywny Post-Process , Po przetworzeniu Poster Edges , Krawędzie plakatu Posterization Antialiasing , Posteryzacja Antialiasing Posterization Level , Poziom posteryzacji Posterize , Posteruj Posterized Dithering , Posteryzowany Dithering Power , Władza Pre-Defined , Wstępnie zdefiniowany Pre-Defined Colormap , Wstępnie zdefiniowana Colormap Pre-Normalize Image , Wstępna normalizacja obrazu Pre-Process , Proces wstępny Precision , Precyzja Precision (%) , Dokładność (%) Preliminary Surface Shift , Wstępna zmiana powierzchniowa Preliminary X-Axis Scaling , Wstępne skalowanie X-Axis Preliminary Y-Axis Scaling , Wstępne skalowanie Y-Axis Preprocessor Power , Moc preprocesora Preprocessor Radius , Preprocesor Promień Preserve Canvas for Post Bump Mapping , Zachowaj płótno do mapowania po uderzeniu Preserve Edges , Zachowaj krawędzie Preserve Image Dimension , Zachowaj wymiar obrazu Preserve Initial Brightness , Zachowaj początkową jasność Preserve Luminance , Zachowaj luminancję Preview , Premiera Preview All Outputs , Podgląd wszystkich wyjść Preview Bands , Zespoły podglądowe Preview Brush , Podgląd szczotki Preview Data , Podgląd danych Preview Detected Shapes , Podgląd wykrytych kształtów Preview Frame Selection , Wybór ramki podglądu (Preview Frame Selection) Preview Gradient , Gradient podglądowy Preview Grain Alone , Podgląd Ziarno Samodzielne Preview Grid , Siatka podglądowa Preview Guides , Przewodniki podglądowe Preview Mapping , Podgląd mapowania Preview Mask , Maska poglądowa Preview Only Shadow , Podgląd tylko cień Preview Opacity (%) , Podgląd Nieprzezroczystość (%) Preview Original , Podgląd Oryginalny Preview Precision , Podgląd Precyzja Preview Progress (%) , Podgląd postępów (%) Preview Progression While Running , Progresja podglądu podczas biegu Preview Ref Point , Punkt referencyjny podglądu Preview Reference Circle , Podgląd Kręgu Referencyjnego Preview Selection , Wybór podglądu Preview Shape , Podgląd kształtu Preview Shows , Pokazy podglądowe Preview Split , Podgląd Rozdzielenie Preview Subsampling , Podgląd Próba wstępna Próba wstępna Preview Time , Czas podglądu Preview Tones Map , Podgląd mapy tonów Preview Type , Typ podglądu Preview Without Alpha , Podgląd bez Alphy Primary Angle , Kąt podstawowy Primary Color , Kolor podstawowy Primary Factor , Czynnik pierwotny Primary Gamma , Gamma pierwotna Primary Radius , Promień pierwotny Primary Shift , Zmiana pierwotna Print Adjustment Marks , Znaki korekcji druku Print Films (12) , Drukowanie filmów (12) Print Frame Numbers , Numery ramek do drukowania Print Size Unit , Jednostka rozmiaru wydruku Print Size Width , Rozmiar wydruku Szerokość Privacy Notice , Informacja o ochronie prywatności Probability Map , Mapa prawdopodobieństwa Procedural , Proceduralne Process As , Proces Jak Process by Blocs of Size , Proces w podziale na bloki wielkości Process Channels Individually , Kanały procesowe Indywidualnie Process Top Layer Only , Tylko górna warstwa procesowa Process Transparency , Przejrzystość procesu Processing Mode , Tryb przetwarzania Propagation , Propagowanie Proportion , Proporcja Protanomaly , Protanomalia Protect Highlights 01 , Chroń reflektory 01 Prussian Blue , Niebieski Pruski Pseudo-Gray Dithering , Pseudo-szary Dithering Purple , Fioletowy Purple11 (12) , Fioletowy11 (12) Pyramid , Piramida Pyramid Processing , Przetwarzanie w piramidzie Pythagoras Tree , Drzewo Pitagorasa Quadrangle , Kwadrant Quadtree Variations , Wariacje Quadtree Quality , Jakość Quality (%) , Jakość (%) Quantization , Kwantyfikacja Quantize Colors , Ilość Kolory Quick , Szybko Quick Copyright , Szybkie prawa autorskie Quick Enlarge , Szybkie powiększenie R/B Smoothness (Principal) , R/B Gładkość (Główna) R/B Smoothness (Secondary) , R/B Gładkość (wtórna) Radius , Promień Radius (%) , Promień (%) Radius / Angle , Promień / Kąt Radius [Manual] , Promień [Instrukcja] Radius Cut , Cięcie promieniowe Radius Middle Circle , Promień Koła Środkowego Radius Outer Circle A (>0 W%) (<0 H%) , Promień Okrąg zewnętrzny A (>0 W%) (<0 H%) Rain & Snow , Deszcz i śnieg Rainbow , Tęcza Raindrops , Krople deszczu Random , Losowo Random [non-Transparent] , Losowo [nieprzezroczysty] Random Angle , Kąt przypadkowy Random Color Ellipses , Przypadkowe elipsy kolorystyczne (Random Color Ellipses) Random Colors , Przypadkowe kolory Random Seed , Nasiona losowe Randomized , Randomizowany Randomness , Przypadkowość Range , Zasięg Ratio , Stosunek: Raw , Surowy Rays , Ray Rays Colors ABCD , Rays Kolory ABCD Rays Colors ABCDE , Ray Kolory ABCDE Rays Colors ABCDEF , Ray Kolory ABCDEF Rays Colors ABCDEFG , Ray Kolory ABCDEFG Rebuild From Similar Blocs , Odbudować się z podobnych bloków Recompose , Ponownie skomponować Reconstruct From Previous Frames , Rekonstrukcja z poprzednich ramek Recover , Odzyskaj Recover Highlights , Odzyskaj ważne informacje Recover Shadows , Odzyskaj cienie Recovery , Odbudowa Rectangle , Prostokątny Recursion Depth , Głębokość rewersyjna Recursions , Rekrutacje Recursive Median , Mediana zwrotna Red , Czerwony Red - Green - Blue , Czerwony - Zielony - Niebieski Red - Green - Blue - Alpha , Czerwony - Zielony - Niebieski - Alpha Red Blue Yellow , Czerwony Niebieski Żółty Red Chroma Factor , Współczynnik czerwonego aromatu Red Chroma Smoothness , Gładkość czerwonego aromatu Red Day 01 , Dzień Czerwony 01 Red Factor , Czynnik czerwony Red Level , Poziom czerwony Red Smoothness , Czerwona Gładkość Red Wavelength , Długość fali czerwonej Red-Eye Attenuation , Tłumienie czerwonych oczu Red-Green , Czerwono-zielony Reds , Czerwoni Reds Oranges Yellows , Pomarańcze czerwone Pomarańcze żółte Reduce Halos , Zmniejszyć halos Reduce Noise , Zmniejszyć hałas Reduce RAM , Zmniejszenie pamięci RAM Reduce Redness , Zmniejszyć czerwień Reference , Odniesienie Reference Angle (deg.) , Kąt odniesienia (deg.) Reference Color , Kolor odniesienia Reference Colors , Kolory referencyjne Reflect , Refleksja Reflection , Refleksja Refraction , Refrakcja Regular Grid , Siatka zwykła Regularity , Regularność Regularity (%) , Regularność (%) Regularization , Regularizacja Regularization (%) , Regulacja (%) Regularization Factor , Czynnik regulujący Regularization Iterations , Iteracje regularyzacyjne Reject , Odrzucić Rejected Colors , Odrzucone kolory Rejected Mask , Odrzucona maska Relative Block Count , Względna liczba bloków Relative Size , Rozmiar względny Relative Warping , Wypaczenia względne Release Notes , Uwagi do publikacji Relief Amplitude , Amplituda ulgi Relief Contrast , Kontrast ulgi Relief Size , Wielkość ulgi Relief Smoothness , Ulga Gładkość Remove Artifacts From Micro/Macro Detail , Usuwanie artefaktów z Mikro/Macro szczegółów Remove Hot Pixels , Usuwanie gorących pikseli Remove Tile , Usuń płytkę Render Multiple Frames , Render Wiele ramek Render on Dark Areas , Render na Ciemnych Obszarach Render on White Areas , Render na White Areas Render Routine for Wiggle Animations , Rutyna Render dla animacji Wiggle'a Rendering Mode , Tryb renderowania Repair Scanned Document , Zeskanowany dokument naprawczy Repeat , Powtórzyć Repeat [Memory Consuming!] , Powtórz. [Pożerająca pamięć!] Repeats , Powtarza się Replace , Zastąpić Replace (Sharpest) , Zastąpić (Najostrzejszy) Replace Layer with CLUT , Wymień warstwę na CLUT Replace Source by Target , Zastąpienie źródła przez cel Replace With White , Wymień z białym Replaced Color , Zastąpiony kolor Replacement Color , Kolor zastępczy Reptile , Gad Rescaling , Skalowanie Reset View , Resetuj widok Resize Image for Optimum Effect , Zmiana rozmiaru obrazu w celu uzyskania optymalnego efektu Resolution , Rezolucja Resolution (%) , Rezolucja (%) Resolution (px) , Uchwała (px) Rest 33 , Reszta 33 Result Image , Obraz wynikowy Result Type , Rodzaj wyniku Resynthetize Texture [FFT] , Tekstura resyntetyzowana [FFT] Resynthetize Texture [Patch-Based] , Tekstura reyntetyzowania [na bazie plastrów] Retouch Layer , Warstwa retuszu Retouched and Sharpened Areas , Obszary remontowane i zaostrzone Retouched Areas Only , Tylko obszary remontowane Retouched Image , Retuszowany obraz Retouched Image Basic , Retuszowany obraz podstawowy Retouched Image Final , Retuszowany obraz końcowy Retouching Style , Styl retuszu Retro Brown 01 , Retro Brązowy 01 Retro Summer 3 , Retro Lato 3 Retro Yellow 01 , Retro Żółty 01 Return Scaling , Skalowanie powrotne Reverse Bits , Bity odwrotne Reverse Bytes , Bajty odwrotne Reverse Effect , Efekt odwrotny Reverse Endianness , Odwrotna Endianiczność Reverse Flip , Odwrócone salto Reverse Frame Stack , Odwrotny stos ramek Reverse Gradient , Gradient odwrotny Reverse Mod , Odwrócony mod Reverse Motion , Odwrotny wniosek Reverse Order , Odwrotny porządek Reverse Pow , Odwrotny Pow Reversing , Cofanie Revert Layer Order , Odwrotna kolejność warstw Revert Layers , Warstwy odwrotne RGB [All] , RGB [Wszystkie] RGB [Blue] , RGB [Niebieski] RGB [Green] , RGB [Zielony] RGB [red] , RGB [czerwony] RGB Image + Binary Mask (2 Layers) , Obraz RGB + maska binarna (2 warstwy) RGB Quantization , RGB Kwantyfikacja RGB Tone , Ton RGB RGBA [All] , RGBA [Wszystkie] RGBA Foreground + Background (2 Layers) , RGBA Pierwszy plan + tło (2 warstwy) RGBA Image (Full-Transparency / 1 Layer) , Obraz RGBA (Full Transsparency / 1 warstwa) RGBA Image (Updatable / 1 Layer) , Obraz RGBA (z możliwością aktualizacji / 1 warstwa) Rice , Ryż Right , Prawo Right Diagonal Foreground , Prawa przekątna pierwszego planu Right Diagonal Foreground , Prawa przekątna pierwszego planu Right Eye View , Widok prawego oka Right Foreground , Prawy pierwszy plan Right Position , Właściwa pozycja Right Side Orientation , Prawostronna orientacja Right Slope , Prawy stok Right Stream Only , Tylko Right Stream Rigid , Sztywny Roddy (by Mahvin) , Roddy (przez Mahvina) Rodilius [Animated] , Rodilius [Animowany] Rollei Retro 100 Tonal , Rollei Retro 100 Tonalny Rollei Retro 80s , Rollei Retro lat 80. Rose , Róża Rotate , Obróć Rotate (muted) , Obrót (wyciszenie) Rotate (vibrant) , Obracaj się (wibruj) Rotate 180 Deg. , Obróć o 180 stopni. Rotate 270 Deg. , Obróć o 270 stopni. Rotate 90 Deg. , Obróć o 90 stopni. Rotate Hue Bands , Obróć opaski Hue Bands Rotate Tree , Obróć drzewo Rotated , Obrócony Rotated (crush) , Obrócony (zgniecenie) Rotations , Obroty Round , Runda Row by Row , Wiersz po wierszu RYB [All] , RYB [Wszystkie] RYB [Blue] , RYB [Niebieski] S-Curve Contrast , Kontrast krzywej S Salt and Pepper , Sól i pieprz Same as Input , Tak samo jak wejście Same Axis , Ta sama oś Sample Image , Przykładowy obraz Sampling , Pobieranie próbek Saturated Blue , Nasycony błękit Saturation , Nasycenie Saturation (%) , Nasycenie (%) Saturation Channel Gamma , Kanał nasycenia Gamma Saturation Correction , Korekta nasycenia Saturation EQ , EQ nasycenia Saturation Factor , Współczynnik nasycenia Saturation Offset , Przesunięcie nasycenia Saturation Shift , Przesunięcie nasycenia Saturation Smoothness , Nasycenie Gładkość Save CLUT as .Cube or .Png File , Zapisz CLUT jako plik .Cube lub .Png Save Gradient As , Zapisz gradient jako Saving Private Damon , Ratowanie prywatnego Damona Scale , Skala: Scale (%) , Skala (%) Scale 1 , Skala 1 Scale 2 , Skala 2 Scale CMYK , Skala CMYK Scale Factor , Współczynnik skali Scale Output , Skala wyjściowa Scale Plasma , Skala Plazma Scale RGB , Skala RGB Scale Style to Fit Target Resolution , Styl skali dopasowany do rozdzielczości docelowej Scale Variations , Zmiany skali Scaled , Skalowany Scales , Wagi Scaling Factor , Współczynnik skalowania Scene Selector , Selektor scen Screen , Ekran Screen Border , Granica ekranu Seamless Deco , Bezszwowe Deco Seamless Turbulence , Bezszwowa turbulencja Second Color , Drugi kolor Second Offset , Drugi offset Second Radius , Drugi promień Second Size , Druga wielkość Secondary Color , Kolor wtórny Secondary Factor , Czynnik drugorzędny Secondary Gamma , Gamma drugorzędna Secondary Radius , Promień drugorzędny Secondary Shift , Zmiana wtórna Sectors , Sektory Seed , Nasiona Segment Max Length (px) , Segment Maksymalna długość (px) Segmentation , Segmentacja Segmentation Edge Threshold , Segmentacyjny próg krawędziowy Segmentation Smoothness , Segmentacja Gładkość Segments , Segmenty Segments Strength , Segmenty Wytrzymałość Select By , Wybierz Przez Select-Replace Color , Wybierz-Replace Color Selected Color , Wybrany kolor Selected Colors , Wybrane kolory Selected Frame , Wybrana ramka Selected Mask , Wybrana maska Selection , Wybór Selective Desaturation , Desaturacja selektywna Selective Gaussian , Selektywny Gaussian Self Image , Obraz siebie Sensitivity , Wrażliwość Sequence X4 , Sekwencja X4 Sequence X6 , Sekwencja X6 Sequence X8 , Sekwencja X8 Serenity , Spokój Serial Number , Numer seryjny Seringe 4 , Serge 4 Serpent , Wąż Set Aspect Only , Tylko w aspekcie Set Frame Format , Ustawianie formatu ramki Seven Layers , Siedem warstw Seventies Magazine , Magazyn z lat siedemdziesiątych Shade , Cień Shade Angle , Kąt widzenia cienia Shade Back to First Color , Odcień Powrót do pierwszego koloru Shade Strength , Wytrzymałość cienia Shading , Cieniowanie Shading (%) , Cieniowanie (%) Shadow , Cień Shadow Contrast , Kontrast cieni (Shadow Contrast) Shadow Intensity , Cień Intensywność Shadow Offset X , Przesunięcie cienia X Shadow Offset Y , Przesunięcie cienia Y Shadow Size , Rozmiar cienia (Shadow Size) Shadow Smoothness , Cień Gładkość cienia Shadows , Cienie Shadows Abstraction , Cienie Abstrakcja Shadows Brightness , Cienie Jasność Shadows Color Intensity , Cienie Intensywność koloru Shadows Lightness , Cienie Lekkość Shadows Selection , Wybór cieni (Shadows Selection) Shadows Threshold , Cienie Próg Shadows Zone , Strefa cieni (Shadows Zone) Shape , Kształt Shape Area Max , Obszar kształtu Max Shape Area Max0 , Obszar kształtu Max0 Shape Area Min0 , Obszar kształtu Min0 Shape Average , Kształt Średnia Shape Average0 , Kształt Średnia0 Shape Max , Kształt Max Shape Max0 , Kształt Max0 Shape Median , Kształt Mediany Shape Median0 , Kształt Mediany0 Shape Min0 , Kształt Min0 Shapeaverage , Średni kształt Shapes , Kształty Sharp Abstract , Ostre streszczenie Sharpen , Ostrzyć Sharpen [Deblur] , Ostrzyć [Deblur] Sharpen [Gold-Meinel] , Ostrzyć [Gold-Meinel] Sharpen [Gradient] , Ostrzyć [Gradient] Sharpen [Hessian] , Ostrzyć [Hessian] Sharpen [Inverse Diffusion] , Wyostrzyć [Odwrócenie dyfuzji] Sharpen [Multiscale] , Ostrzyć [Multiscale] Sharpen [Octave Sharpening] , Sharpen [Oktawowe Ostrzenie] Sharpen [Richardson-Lucy] , Wyostrzyć [Richardson-Lucy] Sharpen [Shock Filters] , Wyostrzyć [Filtry wstrząsające] Sharpen [Texture] , Wyostrzyć [Tekstura] Sharpen [Tones] , Wyostrzyć [Tony] Sharpen [Unsharp Mask] , Wyostrzyć [Maska Naostrzona] Sharpen [Whiten] , Ostrzyć [Whiten] Sharpen Details in Preview , Wyostrzyć szczegóły w Podglądzie Sharpen Edges Only , Tylko ostre krawędzie Sharpen Object , Ostrzony obiekt Sharpen Radius , Ostry promień Sharpen Shades , Wyostrzone odcienie (Sharpen Shades) Sharpened Areas Only , Tylko obszary zaostrzone Sharpening , Ostrzenie Sharpening Layer , Ostrzenie warstwy Sharpening Radius , Promień ostrzenia Sharpening Strength , Wytrzymałość na ostrzenie Sharpening Type , Rodzaj ostrzenia Sharpest , Najostrzejszy Sharpness , Ostrość Shift Linear Interpolation? , Interpolacja liniowa Shift? Shift Point , Punkt zmiany Shift Y , Zmiana Y Shininess , Błyskotliwość Shivers , Ciarki Shopping Cart , Wózek na zakupy Show Both Poles , Pokaż obu Polaków Show Difference , Pokaż różnicę Show Frame , Pokaż ramkę Shrink , Kurczyć się Shuffle Pieces , Shuffle Kawałki Sierpinksi Design , Projekt Sierpinksi Sierpinski Triangle , Trójkąt Sierpińskiego Silver , Srebro Similarity Space , Podobieństwo przestrzeni Simple Local Contrast , Prosty lokalny kontrast Simple Noise Canvas , Hałasowe płótno proste Simulate Film , Symuluj film Sin(z) , Grzech (z) Single (Merged) , Pojedynczy (połączony) Single Custom Depth Map , Pojedyncza niestandardowa mapa głębokości Single Image Stereogram , Stereogram jednoobrazowy Single Layer , Jednowarstwowy Six Layers , Sześć warstw Sixteen Threads , Szesnaście wątków Size , Rozmiar Size (%) , Wielkość (%) Size for Bright Tones , Rozmiar dla Jasnych Tonów Size for Dark Tones , Rozmiar dla Dark Tones Size of Frame Numbers (%) , Wielkość Liczba ramek (%) Size Variance , Rozmiar Rozmiar Variance Size-1 , Wielkość 1 Size-2 , Rozmiar 2 Size-3 , Wielkość - 3 Skeleton , Szkielet Skin Estimation , Ocena skóry Skin Mask , Maska na skórę Skin Tone Colors , Kolory tonów skóry Skin Tone Mask , Maska z odcieniem skóry Skin Tone Protection , Ochrona przed zabarwieniem skóry Skip All Other Steps , Pomiń wszystkie inne kroki Skip Finest Scales , Pomiń najdrobniejsze skale Skip Others Steps , Pomiń inne kroki Skip This Step , Pomiń ten krok Skip to Use the Mask to Boost , Przejdź do opcji Użyj maski, aby zwiększyć. Slice Luminosity , Plaster Luminosity Slide [Color] (26) , Suwak [Kolor] (26) Slow Recovery , Powolny powrót do zdrowia Small , Mały Small (Faster) , Mały (Szybszy) Smart Threshold , Inteligentny próg Smooth , Gładko Smooth [Anisotropic] , Gładki [Anizotropowy] Smooth [Bilateral] , Gładko [dwustronnie] Smooth [Block PCA] , Gładko [blok PCA] Smooth [Diffusion] , Smooth [Dyfuzja] Smooth [Geometric-Median] , Gładki [Geometryczno-medyczny] Smooth [Guided] , Smooth [Prowadzony] Smooth [Mean-Curvature] , Gładka [średnia-kurwatura] Smooth [Median] , Smooth [Mediana] Smooth [Patch-Based] , Gładko. [Łata] Smooth [Patch-PCA] , Gładki [Patch-PCA] Smooth [Selective Gaussian] , Smooth [Gaussian Selektywny] Smooth [Skin] , Smooth [Skóra] Smooth [Thin Brush] , Gładko [cienka szczotka] Smooth [Total Variation] , Gładko [Całkowita zmienność] Smooth Abstract , Gładkie streszczenie Smooth Amount , Gładka kwota Smooth Clear , Smooth Jasne Smooth Colors , Gładkie kolory Smooth Only , Tylko gładki Smooth Sailing , Gładkie żeglowanie Smoothen Background Reconstruction , Wygładzanie tła Odbudowa tła Smoother Sharpness , Gładsza ostrość Smoothing , Wygładzanie Smoothing Style , Styl wygładzający Smoothing Type , Typ wygładzania Smoothness , Gładkość Smoothness (%) , Gładkość (%) Smoothness (px) , Gładkość (px) Smoothness Shadow , Gładkość Cień Smoothness Type , Gładkość Typ Snowflake , Płatek śniegu Snowflake 2 , Płatek śniegu 2 Snowflake Recursion , Płatek śniegu Powrót Soft , Miękka Soft Light , Miękkie światło Soft Burn , Miękkie oparzenie Soft Fade , Miękkie zanikanie Soft Glow , Miękka poświata Soft Light , Miękkie światło Soft Random Shades , Miękkie przypadkowe odcienie Soft Warming , Miękkie Ogrzewanie Soften , Często Soften All Channels , Zmiękcz wszystkie kanały Soften Guide , Przewodnik Miękki Solarize , Solaryzować Solarize Color , Kolor słoneczny Solarized Color2 , Kolor słoneczny2 Solidify , Solidaryzuje się Solve Maze , Rozwiązuj labirynt Some , Niektóre Some Blue , Niektóre Blue Some Cyan , Jakiś Cyjan Some Green , Trochę zieleni Some Key , Jakiś klucz Some Magenta , Trochę Magenty Some Red , Trochę czerwieni Some Yellow , Trochę żółty Sort Colors , Sortowanie kolorów Sorting Criterion , Kryterium sortowania Source (%) , Źródło (%) Source Color #1 , Kolor źródłowy #1 Source Color #10 , Kolor źródłowy #10 Source Color #11 , Kolor źródłowy #11 Source Color #12 , Kolor źródłowy #12 Source Color #13 , Kolor źródłowy #13 Source Color #14 , Kolor źródłowy #14 Source Color #15 , Źródło Kolor #15 Source Color #16 , Źródło Kolor #16 Source Color #17 , Kolor źródłowy #17 Source Color #18 , Kolor źródłowy #18 Source Color #19 , Źródło Kolor #19 Source Color #2 , Źródło Kolor #2 Source Color #20 , Kolor źródłowy #20 Source Color #21 , Źródło Kolor #21 Source Color #22 , Kolor źródłowy #22 Source Color #23 , Kolor źródłowy #23 Source Color #24 , Źródło Kolor #24 Source Color #3 , Źródło Kolor #3 Source Color #4 , Kolor źródłowy #4 Source Color #5 , Kolor źródłowy #5 Source Color #6 , Źródło Kolor #6 Source Color #7 , Kolor źródłowy #7 Source Color #8 , Źródło Kolor #8 Source Color #9 , Źródło Kolor #9 Source X-Tiles , Źródło X-Tiles Source Y-Tiles , Źródło Płytki Y Space , Przestrzeń Spatial Bandwidth , Pasmo przestrzenne Spatial Metric , Metryka przestrzenna Spatial Overlap , Przestrzenne nakładanie się Spatial Precision , Precyzja przestrzenna Spatial Radius , Promień przestrzenny Spatial Regularization , Regulacja przestrzenna Spatial Sampling , Pobieranie próbek przestrzennych Spatial Scale , Skala przestrzenna Spatial Tolerance , Tolerancja przestrzenna Spatial Transition , Transformacja przestrzenna Spatial Variance , Wariacja przestrzenna Special Effects , Efekty specjalne Specific Saturation , Specyficzne nasycenie Specify Different Output Size , Określać różne wielkości wyjściowe Specify HaldCLUT As , Określ HaldCLUT jako Specular Centering , Centrowanie spekulacyjne Specular Intensity , Spekularna Intensywność Specular Light , Światło migawkowe Specular Lightness , Lekkość mowy Specular Size , Rozmiar spekulatywny Speed , Prędkość Sphere , Sfera Spiral , Spirala Spiral RGB , Spirala RGB Spline B1 , Klinga B1 Spline B2 , Linia B2 Spline B3 , Klinika B3 Spline B4 , Klinga B4 Spline B5 , Klinga B5 Spline B6 , Klinga B6 Spline Editor , Redaktor Spline Spline Max Angle (deg) , Klinga Max Kąt (deg) Spline Max Length (px) , Klinga Maksymalna długość (px) Spline Roundness , Spline Okrągłość Splines , Spliny Split Base and Detail Output , Wyjście z podziałem na bazę i szczegóły Split Brightness / Colors , Podział Jasność / Kolory Split Details [Alpha] , Szczegóły podziału [Alpha] Split Details [Wavelets] , Szczegóły podziału [Fale] Sponge , Gąbka Spread Amount , Spread Kwota Spread Angles , Kąty rozproszenia Spread Noise Amount , Hałas rozproszony Ilość Spreading , Rozprzestrzenianie się Spring Morning , Wiosenny poranek Sprocket 231 , Koło zębate 231 Spy 29 , Szpieg 29 Square , Plac Square 1 , Plac 1 Square 2 , Plac 2 Square to Circle , Od kwadratu do koła Squared-Euclidean , Kwadratowo-Euklidesowy Squares , Placyki Squares (Outline) , Kwadraty (kontur) SRGB Conversion , Konwersja SRGB Stabilizer , Stabilizator Stained Glass , Witraż Stamp , Stempel Standard [No Scan] , Standard [Bez skanowania] Standard Deviation , Odchylenie standardowe Star , Gwiazda Star: -5*(z^3/3-Z/4)/2 , Gwiazda: -5*(z^3/3-Z/4)/2 Stars , Gwiazdy Stars (Outline) , Gwiazdy (kontur) Start Angle , Kąt startu Start Color , Kolor startowy Start Frame Number , Numer ramy startowej Start of Mid-Tones , Początek tonów średnich Starting Angle , Kąt początkowy Starting Color , Kolor początkowy Starting Feathering , Rozpoczęcie pierzenia Starting Frame , Rama startowa Starting Level , Poziom wyjściowy Starting Pattern , Wzór początkowy Starting Point , Punkt startowy Starting Point (%) , Punkt początkowy (%) Starting Scale (%) , Skala początkowa (%) Starting Value , Wartość początkowa Stationary Frames , Ramy stacjonarne Std Angle (deg.) , Kąt Std (deg.) Std Branching , Oddział Std Std Length Factor (%) , Std Współczynnik długości (%) Std Thickness Factor (%) , Std Współczynnik grubości (%) Stencil Type , Typ szablonu Step , Krok Step (%) , Stopień (%) Steps , Kroki Stereo Image , Obraz Stereo Stereo Window Position , Pozycja okna Stereo Stereographic Projection , Projekcja stereograficzna Stereoscopic Image Alignment , Stereoskopowe wyrównywanie obrazu Stereoscopic Window Position , Stereoskopowa pozycja okna Straight , Prosto Strands , Nitki Street , Ulica Strength , Siła Strength (%) , Siła (%) Strength Effect , Efekt siły Strength Highlights , Mocne strony Strength Midtones , Siła Midtonów Strength Shadows , Siła Cienie (Strength Shadows) Stretch Contrast , Kontrast rozciągający Stretch Factor , Czynnik rozciągający (Stretch Factor) Stripe Orientation , Orientacja pasków Stroke Angle , Kąt uderzenia Stroke Length , Długość skoku Stroke Strength , Wytrzymałość na uderzenia Strong , Silny Structure Smoothness , Struktura Gładkość Style , Styl Style Variations , Zmiany w stylu Stylize , Styliza Subdivisions , Pododdziały Subpixel Interpolation , Interpolacja subpikselowa Subpixel Level , Poziom subpikseli Subsampling (%) , Pobieranie podpróbek (%) Subtle Blue , Subtelny błękit Subtle Green , Subtelna zieleń Subtle Yellow , Subtelnie żółty Subtract , Odejmij Subtractive , Odejmowalne Summer , Lato Summer (alt) , Lato (alt) Sunny , Słoneczny Sunny (alt) , Słoneczny (alt) Sunny (rich) , Słoneczny (bogaty) Sunny (warm) , Słonecznie (ciepło) Super Warm , Super Ciepło Super Warm (rich) , Super ciepły (bogaty) Super-Pixels , Super-Piksele Superformula , Superformuła Superimpose with Original? , Nakładać z Oryginałem? Surface Disturbance , Zakłócenia powierzchniowe Surface Disturbance Multiplier , Zakłócenia powierzchniowe Mnożnik Swap Layers , Warstwy zamienne Swap Radius / Angle , Promień zamiany / Kąt Sweet Gelatto , Słodka żelatynka Symmetric 2D Shape , Symetryczny kształt 2D Symmetrize , Symetryzuj Symmetry , Symetria Symmetry Sides , Symetria Strony Synthesis Scale , Skala syntezy Tangent Radius , Promień styczny Target Color #1 , Kolor docelowy #1 Target Color #10 , Kolor docelowy #10 Target Color #11 , Kolor docelowy #11 Target Color #12 , Kolor docelowy #12 Target Color #13 , Kolor docelowy #13 Target Color #14 , Kolor docelowy #14 Target Color #15 , Kolor docelowy #15 Target Color #16 , Kolor docelowy #16 Target Color #17 , Kolor docelowy #17 Target Color #18 , Kolor docelowy #18 Target Color #19 , Kolor docelowy #19 Target Color #2 , Kolor docelowy #2 Target Color #20 , Kolor docelowy #20 Target Color #21 , Kolor docelowy #21 Target Color #22 , Kolor docelowy #22 Target Color #23 , Kolor docelowy #23 Target Color #24 , Kolor docelowy #24 Target Color #3 , Kolor docelowy #3 Target Color #4 , Kolor docelowy #4 Target Color #5 , Kolor docelowy #5 Target Color #6 , Kolor docelowy #6 Target Color #7 , Kolor docelowy #7 Target Color #8 , Kolor docelowy #8 Target Color #9 , Kolor docelowy #9 TechnicalFX - Backlight Filter , TechnicalFX - Filtr podświetlający Temperature Balance , Bilans temperaturowy Ten Layers , Dziesięć warstw Tension Green 1 , Napięcie Zielony 1 Tension Green 2 , Napięcie Zielony 2 Tension Green 3 , Napięcie Zielony 3 Tension Green 4 , Napięcie Zielony 4 Tertiary Factor , Czynnik trzeciorzędny Tertiary Gamma , Trzeciorzędowa Gamma Tertiary Shift , Trzeciorzędna zmiana Tertiary Twist , Trzeciorzędny Twist Text , Tekst Texture , Tekstura Texture Enhance , Wzmocnienie tekstury Textured Glass , Szkło teksturowane The Matrices , Matryce Thickness , Grubość Thickness (%) , Grubość (%) Thickness (px) , Grubość (px) Thickness Factor , Współczynnik grubości Thin Edges , Cienkie krawędzie Thin Separators , Cienki Separator Thinness , Cienkość Thinning , Przerzedzanie Thinning (Slow) , Przerzedzanie (Powoli) Three Layers , Trzy warstwy Threshold , Próg Threshold (%) , Próg (%) Threshold High , Wysoki próg Threshold Low , Niski próg Threshold Max , Próg Max Threshold Mid , Próg Mid Threshold On , Próg włączony Thumbnail Size , Wielkość miniatury Tiger , Tygrys Tikhonov , Tichonow Tile Poles , Kafelki Tile Size , Wielkość płytek Tileable Rotation , Obrót płytami stolikowymi Tiled Isolation , Izolacja kafelkowa Tiled Normalization , Normalizacja kafelkowa Tiled Parameterization , Parametryzacja płytek Tiled Preview , Podgląd kafelkowy Tiled Random Shifts , Przypadkowe zmiany kafelkowe (Tiled Random Shifts) Tiled Rotation , Obrót kafelkami Tiles , Płytki Tiles to Layers , Kafelki do warstw Tilt , Przechylenie Time , Czas Time Step , Krok czasowy Timed Image , Obraz czasowy Tiny , Malutki To Nadir / Zenith , Do Nadiru / Zenitu Toggle to View Base Image , Przełączanie do widoku obrazu podstawowego Tolerance , Tolerancja Tolerance to Gaps , Tolerancja na luki Tonal Bandwidth , Tonalna szerokość pasma Tone Blur , Rozmycie tonalne Tone Enhance , Wzmocnienie tonu Tone Mapping [Fast] , Tone Mapping [Szybko] Tone Mapping Fast , Szybkie mapowanie tonów Tone Presets , Ustawienia tonów Tone Threshold , Próg tonalny Tones Range , Tony Range Tones Smoothness , Tony Gładkość Tones to Layers , Tony do warstw Top Layer , Warstwa wierzchnia Top Left , Górna lewa strona Top Right , Na górze, po prawej stronie Top-Left Vertex (%) , Wierzchołek lewy-prawy (%) Top-Right Vertex (%) , Wierzchołek prawy (%) Total Layers , Warstwy ogółem Total Variation , Całkowite wahania Transfer Colors [Histogram] , Kolory transferowe [Histogram] Transfer Colors [Patch-Based] , Kolory transferowe [na bazie plastrów] Transfer Colors [PCA] , Kolory transferowe [PCA] Transfer Colors [Variational] , Kolory transferowe [Variational] Transform , Transformacja Transition Map , Mapa przejściowa Transition Shape , Przejściowy kształt Transition Smoothness , Przejście Gładkość Transmittance Map , Mapa przekaźnikowa Transparency , Przejrzystość Transparent , Przejrzysty Transparent Background , Przejrzyste tło Transparent Black & White , Przezroczysty czarno-biały Transparent Color , Kolor transparentny Transparent on Black , Przejrzysty na czarno Transparent on White , Przejrzysty na białym Transparent Skin , Przejrzysta skóra Tree , Drzewo Triangle , Trójkąt Triangles , Trójkątów Triangles (Outline) , Trójkątów (kontur) Triangular Ha , Trójkątny Ha Triangular Hb , Trójkątny Hb Triangular Va , Trójkątny Va Triangular Vb , Trójkątny Vb Tritanomaly , Tritanomalia Trunk Color , Kolor tułowia Trunk Opacity (%) , Nieprzezroczystość pnia (%) Trunks , Kufry Tulips , Tulipany Tunnel , Tunel Turbulence , Turbulencje Turbulence 2 , Turbulencja 2 Turbulent Halftone , Turbulentny Halftone Turn on Rotate and Twirl , Włączyć Rotate i Twirl Two Layers , Dwie warstwy Two Threads , Dwa nici Type , Typ Type Snowflake , Typ Płatek śniegu Ultra Water , Ultra Woda UltraWarp++++ , UltraWarp+++ Unaligned Images , Obrazy niesymetryczne Undeniable , Bezsprzecznie Undeniable 2 , Niezaprzeczalny 2 Underwater , Pod wodą Unknown , Nieznany Unpurple , Nieprecyzyjny Unsharp Mask , Maska nieostra Up-Left , W górę-lewo Upper Layer Is the Top Layer for All Blends , Górna warstwa jest górną warstwą dla wszystkich mieszanek Upper Side Orientation , Górna orientacja boczna Uppercase Letters , Wielkie litery Upscale [Diffusion] , Upscale [Dyfuzja] Urban Cowboy , Kowboj Miejski Use as Hue , Użyj jako barwy Use as Saturation , Zastosowanie jako nasycenie Use Individual Depth Map , Użyj indywidualnej mapy głębokości Use Light , Użyj światła Use Maximum Tones , Użyj Maksymalnych Tonów Use Top Layer as a Priority Mask , Użyj górnej warstwy jako maski priorytetowej User-Defined , Zdefiniowany przez użytkownika User-Defined (Bottom Layer) , Zdefiniowany przez użytkownika (warstwa dolna) Uzbek Bukhara , Uzbecka Buchara Uzbek Marriage , Uzbeckie Małżeństwo Uzbek Samarcande , Uzbecki Samarcande V Cutoff , V Odcięcie Value , Wartość Value Action , Wartość Działania Value Blending , Łączenie wartości Value Bottom , Wartość Dół Value Correction , Korekta wartości Value Factor , Współczynnik wartości Value Normalization , Wartość Normalizacja Value Offset , Wartość Przesunięcie Value Precision , Wartość Precyzja Value Range , Zakres wartości Value Scale , Skala wartości Value Shift , Zmiana wartości Value Smoothness , Wartość Gładkość Value Top , Wartość górna Value Variance , Zmienność wartości Values , Wartości Van Gogh: Irises , Van Gogh: Irysy Van Gogh: The Starry Night , Van Gogh: Gwieździsta noc Van Gogh: Wheat Field with Crows , Van Gogh: Pole pszenicy z wronami Variability , Zmienność Variation A , Wariacja A Variation B , Zmiana B Variation C , Zmiana C Vector Painting , Malarstwo wektorowe (Vector Painting) Vertex Type , Typ Vertexu Vertical , Pionowo Vertical (%) , Pionowe (%) Vertical 1 Amount , Pionowe 1 Kwota Vertical 1 Length , Pionowe 1 Długość Vertical 2 Amount , Pionowe 2 Kwota Vertical 2 Length , Pionowe 2 Długość Vertical Amount , Kwota pionowa Vertical Array , Układ pionowy Vertical Blur , Rozmycie pionowe Vertical Length , Długość pionowa Vertical Size (%) , Wielkość pionowa (%) Vertical Stripes , Paski pionowe Vertical Tiles , Płytki pionowe Very Course 5 , Bardzo Kurs 5 Very Fine , Bardzo dobrze Very High , Bardzo wysoka Very High (Even Slower) , Bardzo wysoka (nawet wolniejsza) Very Warm Greenish , Bardzo ciepły zielonkawy Vibrant (alien) , Vibrant (kosmita) Vibrant (contrast) , Vibrant (kontrast) Victory , Zwycięstwo View Outlines Only , Widok tylko konturów View Resolution , Rozdzielczość widoków Vignette , Winieta Vignette Contrast , Kontrast winiety Vignette Max Radius , Winieta Max Promień Vignette Min Radius , Winieta Min. Promień Vignette Size , Rozmiar winiety Vignette Strength , Wytrzymałość winiety Vignette Strenth , Winieta Strenth Vintage (brighter) , Vintage (jaśniejszy) Vintage 163 , Stary rocznik 163 Vintage Chrome , Chrom antyczny Vintage Warmth 1 , Ciepło zabytkowe 1 Virtual Landscape , Wirtualny Krajobraz Visible Watermark , Widoczny znak wodny Vivid Edges , Żywe krawędzie Vivid Edges* , Żywe krawędzie* Vivid Light , Żywe światło Wall , Ściana Warm , Ciepłe Warm (highlight) , Ciepło (główna atrakcja) Warm (yellow) , Ciepły (żółty) Warm Dark Contrasty , Ciepły, ciemny kontrast Warm Neutral , Ciepły Neutralny Warm Sunset Red , Ciepła czerwień zachodu słońca Warm Teal , Ciepły Teal Warp [Interactive] , Osnowa [Interaktywny] Warp by Intensity , Osnowa według intensywności Water , Woda Waterfall , Wodospad Wave , Fala Wave(s) , Fala(-y) Wavelength , Długość fali Waves Amplitude , Fale Amplituda Waves Smoothness , Fale Gładkość We'll See , Zobaczymy Weave , Splot Weird , Dziwne Whirl Drawing , Rysunek wiru White , Biały White Dices , Białe kostki White Layers , Białe warstwy White Level , Poziom bieli White on Black , Biały na czarnym White on Transparent , Biały na Transparentnym White on Transparent Black , Biały na przezroczystym czarnym White Point , Biały punkt White to Black , Biały do czarnego White Walls , Białe ściany Whiter Whites , Bielsze biali Whites , Biali Width , Szerokość Width (%) , Szerokość (%) Wind , Wiatr Winter Lighthouse , Latarnia Zimowa Wipe , Wytrzyj Without , Bez Wooden Gold 20 , Drewniane złoto 20 Work on Frameset , Prace nad ramkami Wrap , Folia X Center , X Centrum X Origine , X Pochodzenie X-Amplitude , X-Amplituda X-Axis Then Y-Axis , X-Axis Potem Y-Axis X-Centering , X-Centrowanie X-Centering (%) , X-Centrowanie (%) X-Coordinate [Manual] , Współrzędna X [Instrukcja] X-Factor (%) , X-Faktor (%) X-Resolution , Rozwiązanie X-Resolution X-Rotation , Zdjęcie rentgenowskie X-Size , Rozmiar X: X-Size (px) , Rozmiar X (px) X-Smoothness , X-płynność X1 (none) , X1 (brak) XY Mirror , Lustro XY XY-Amplitude , Amplituda XY XY-Coordinates (%) , Współrzędne XY (%) Y Center , Centrum Y Y Origine , Y Pochodzenie Y-Amplitude , Y-Amplituda Y-Axis Then X-Axis , Y-Axis Potem X-Axis Y-Center , Y-Centrum Y-Centering , Y-Centrowanie Y-Centering (%) , Y-Centryczny (%) Y-Coordinate [Manual] , Współrzędna Y [Instrukcja] Y-Dispersion , Y-Dyfuzja Y-Factor (%) , Y-Faktor (%) Y-Multiplier , Y-Multiplikator Y-Resolution , Y-Rezolucja Y-Rotation , Y-Rotacja Y-Scale , Skala Y: Y-Size , Rozmiar Y Y-Size (px) , Rozmiar Y (px) Y-Tiles , Panele Y Y-Variations , Y-Wariacje YAG Effect , Efekt YAG YCbCr (Chroma Only) , YCbCr (tylko chrom) YCbCr (Luma Only) , YCbCr (tylko Luma) YCbCr (Mixed) , YCbCr (Mieszane) YCbCr [Blue-Red Chrominances] , YCbCr [niebiesko-czerwone chrominanse] YCbCr [Green Chrominance] , YCbCr [Zielony Chrominance] YCbCr [Luminance] , YCbCr [Luminancja] Yellow , Żółty Yellow 55B , Żółty 55B Yellow Factor , Czynnik żółty Yellow Film 01 , Film żółty 01 Yellow Smoothness , Żółta Gładkość YES8 , TAK8 Z-Multiplier , Z-Multiplikator Z-Rotation , Z-Rotacja Z-Scale , Z-Skala Z-Size , Rozmiar Z ZilverFX - B&W Solarization , ZilverFX - B&W Solaryzacja Zone System , System strefowy Zoom Center , Centrum Zoom Zoom Factor , Współczynnik powiększenia Zoom Out , Powiększenie ================================================ FILE: translations/filters/gmic_qt_pt.csv ================================================ Arrays & Tiles , Arrays & Ladrilhos Artistic , Artístico Black & White , Preto e Branco Colors , Cores Contours , Contornos Deformations , Deformações Degradations , Degradações Details , Detalhes Testing , Testes Frames , Molduras Frequencies , Frequências Layers , Camadas Lights & Shadows , Luzes e Sombras Patterns , Padrões Rendering , Renderização Repair , Reparação Sequences , Sequências Silhouettes , Silhuetas Icons , Ícones Misc , Diversos Nature , Natureza Others , Outros Stereoscopic 3D , Estereoscópico 3D ♥ Support Us ! ♥ , ♥ Apoie-nos! ♥ *Colors Doping , *Cores Doping *Colors Doping* , *Cores Doping* *Comix Colors* , *Cores do Mix* *Dark Edges* , *Bordaduras escuras* *Dark Screen* , *Ecrã escuro* *Graphix Colors , *Cores do Graphix *Vivid Screen* , *Ecrã Vívido* - NO - , - NÃO - -1. Value Action , -1. Valor Acção -2. Overall Channel(s) , -2. Canal(s) geral(is) -3. Normalisation Channel(s) , -3. Canal(s) de normalização -4. Normalise , -4. Normalizar 0. Recompute , 0. Recompute 1 Levels , 1 Níveis 1. Plasma Texture [Discards Input Image] , 1. Textura de Plasma [descarta imagem de entrada] 10. Quadtree Max Precision , 10. Quadtree Max Precisão 10th , 10º. 10th Color , 10ª Cor 11. Quadtree Min Homogeneity , 11. Homogeneidade de Quadtree 11th , 11ª 12 Colors , 12 Cores 12. Quadtree Max Homogeneity , 12. Homogeneidade Quadtree Max 125 Keypoints , 125 Pontos-chave 12th , 12ª 13. Noise Type , 13. Tipo de Ruído 13th , 13o. 14. Minimum Noise , 14. Ruído Mínimo 14th , 14ª 15. Maximum Noise , 15. Ruído Máximo 15th , 15 16 Colors , 16 Cores 16. Noise Channel(s) , 16. Canal(s) de Ruído 16th , 16o. 17. Warp Iterations , 17. Iterações warp 18. Warp Intensity , 18. Intensidade Warp 180 Deg. , 180 graus. 19. Warp Offset , 19. Desvio de Warp 1st , 1o. 1st Additional Palette (.Gpl) , 1ª Paleta Adicional (.Gpl) 1st Color , 1ª Cor 1st Parameter , 1º Parâmetro 1st Text , 1º Texto 1st Tone , 1ª Tonalidade 1st Variance , 1ª Variância 1st X-Coord , 1º Corda X 1st Y-Coord , 1º Cordão em Y 2 Colors , 2 Cores 2 Noise , 2 Ruído 2-Strip Process , Processo de 2 viagens 2. Plasma Scale , 2. Escala de Plasma 20. Scale to Width , 20. Escala à Largura 21. Scale to Height , 21. Escala à Altura 216 Keypoints , 216 Pontos-chave 22. Correlated Channels , 22. Canais relacionados 22.5 Deg. , 22,5 Deg. 23. Boundary , 23. Limite 24. Warp Channel(s) , 24. Canal(s) de Warp 25. Random Negation , 25. Negação Aleatória 26. Random Negation Channel(s) , 26. Canal(s) de Negação Aleatória 27 Keypoints , 27 Pontos-chave 27. Gamma Offset , 27. Compensação Gama 270 Deg. , 270 graus. 28. Hue Offset , 28. Offset de matizes 29. Normalise , 29. Normalizar 2nd , 2o. 2nd Additional Palette (.Gpl) , 2ª Paleta Adicional (.Gpl) 2nd Color , 2ª Cor 2nd Parameter , 2º Parâmetro 2nd Text , 2º Texto 2nd Tone , 2º Tom 2nd Variance , 2ª Variância 2nd X-Coord , 2º Corda X 2nd Y-Coord , 2º Corda em Y 2x Type , 2x Tipo 2XY Mirror , 2XY Espelho 3 Colors , 3 Cores 3 Mix , 3 Mistura 3. Plasma Alpha Channel , 3. Canal Alfa de Plasma 30. Minimum Hue , 30. Tonalidade Mínima 31. Maximum Hue , 31. Tonalidade Máxima 32. Minimum Saturation , 32. Saturação mínima 33. Maximum Saturation , 33. Saturação Máxima 34. Minimum Value , 34. Valor mínimo 343 Keypoints , 343 Pontos-chave 35. Maximum Value , 35. Valor máximo 36. Hue Offset , 36. Offset de matizes 37. Saturation Offset , 37. Compensação de Saturação 38. Value Offset , 38. Compensação de valor 3D Blocks , Blocos 3D 3D CLUT (Fast) , 3D CLUT (Rápido) 3D CLUT (Precise) , 3D CLUT (Preciso) 3D Colored Object , Objecto colorido 3D 3D Conversion , Conversão 3D 3D Elevation , Elevação 3D 3D Elevation [Animated] , Elevação 3D [Animado] 3D Extrusion , Extrusão 3D 3D Extrusion [Animated] , Extrusão 3D [Animado] 3D Image Object , Objecto de imagem 3D 3D Image Object [Animated] , Objecto de imagem 3D [Animado] 3D Image Type , Tipo de imagem 3D 3D Lathing , Ripado 3D 3D Metaballs , Metabolls 3D 3D Random Objects , Objectos 3D Aleatórios 3D Reflection , Reflexão 3D 3D Rubber Object , Objecto de Borracha 3D 3D Tiles , Ladrilhos 3D 3D Video Conversion , Conversão de vídeo 3D 3D Waves , Ondas 3D 3rd , 3o. 3rd Color , 3ª Cor 3rd Parameter , 3º Parâmetro 3rd Tone , 3ª Tonalidade 3rd X-Coord , 3º Corda X 3rd Y-Coord , 3º Cordão em Y 4 Colors , 4 Cores 4. Segmentation [No Alpha Channel] , 4. Segmentação [Sem Canal Alfa] 4096x4096 Layer , 4096x4096 Camada 45 Deg. , 45 graus. 4th , 4 4th Color , 4ª Cor 4th Tone , 4º Tom 5. Edge Threshold , 5. Limiar de borda 512x512 Layer , 512x512 Camada 5th , 5o. 5th Color , 5ª Cor 5th Tone , 5ª Tonalidade 6. Smoothness , 6. Alisamento 60's (faded Alt) , Anos 60 (Alt desbotado) 60's (faded) , Anos 60 (desbotado) 64 (Faster) , 64 (Mais rápido) 64 Keypoints , 64 Pontos-chave 67.5 Deg. , 67,5 Deg. 6th , 6o. 6th Color , 6ª Cor 6th Tone , 6º Tom 7. Blur , 7. Borrão 7th , 7 7th Color , 7ª Cor 7th Tone , 7ª Tonalidade 8 Colors , 8 Cores 8 Keypoints (RGB Corners) , 8 Pontos-chave (RGB Corners) 8. Quadtree Pixelisation [No Alpha Channel] , 8. Pixelização Quadtree [Sem Canal Alfa] 8th , 8 8th Color , 8ª Cor 8th Tone , 8ª Tonalidade 9. Quadtree Min Precision , 9. Quadtree Min Precisão 90 Deg. , 90 graus. 9th , 9o. 9th Color , 9ª Cor [Cyan]MYK , [Ciano]MYK A Lot of Cyan , Um monte de Cyan A Lot of Key , Uma grande quantidade de chaves A Lot of Magenta , Um monte de Magenta A Lot of Yellow , Um monte de amarelo A-Color Factor , Factor A-Cor A-Color Shift , Mudança de cor A-Color A-Color Smoothness , A-Color Suavidade A-Component , A-Componente A4 / 100 PPI (Recommended) , A4 / 100 PPI (Recomendado) About G'MIC , Sobre a G'MIC Absolute Brightness , Brilho Absoluto Absolute Value , Valor Absoluto Abstraction , Abstracção Acceleration , Aceleração Achromatomaly , Acromatomalia Action , Acção Action #1 , Acção #1 Action #10 , Acção #10 Action #11 , Acção #11 Action #12 , Acção #12 Action #13 , Acção #13 Action #14 , Acção #14 Action #15 , Acção #15 Action #16 , Acção #16 Action #17 , Acção #17 Action #18 , Acção #18 Action #19 , Acção #19 Action #2 , Acção #2 Action #20 , Acção #20 Action #21 , Acção #21 Action #22 , Acção #22 Action #23 , Acção #23 Action #24 , Acção #24 Action #3 , Acção #3 Action #4 , Acção #4 Action #5 , Acção #5 Action #6 , Acção #6 Action #7 , Acção #7 Action #8 , Acção #8 Action #9 , Acção #9 Action Magenta 01 , Acção Magenta 01 Action Red 01 , Acção Vermelho 01 Activate 'Pencil Smoother' , Activar 'Lápis mais liso'. Activate Color Enhancement , Activar o melhoramento da cor Activate Colors Geometric Shapes , Activar as cores Formas Geométricas Activate Custom Filter , Activar filtro personalizado Activate Lizards , Activar Lagartos Activate Mirror , Activar o Espelho Activate Pink Elephants , Activar Elefantes Cor-de-Rosa Activate Second Direction , Activar a segunda direcção Activate Shakes , Activar tremores Activate Slice 1 , Activar a fatia 1 Activate Slice 2 , Activar a fatia 2 Activate Slice 3 , Activar a fatia 3 Activate Slice 4 , Activar a fatia 4 Adaptive , Adaptativo Add , Acrescentar Add 1px Outline , Adicionar 1px Esboço Add Alpha Channels to Detail Scale Layers , Adicionar Canais Alfa a Camadas de Escala Detalhadas Add as a New Layer , Adicionar como uma nova camada Add Chalk Highlights , Acrescentar Destaques em Giz Add Color Background , Adicionar Fundo de Cor Add Comment Area in HTML Page , Adicionar Área de Comentários na Página HTML Add Grain , Adicionar grão Add Image Label , Adicionar etiqueta de imagem Add Painter's Touch , Adicionar Toque de Pintor Add User-Defined Constraints (Interactive) , Adicionar Restrições Definidas pelo Utilizador (Interactivo) Additional Duplicates Count , Contagem adicional de duplicados Additional Outline , Esboço adicional Additive , Aditivo Adjust Background Reconstruction , Ajustar Reconstrução de Fundo Adventure 1453 , Aventura 1453 Aggressive Highlights Recovery 5 , Destaques Agressivos Recuperação 5 Algorithm , Algoritmo Alien Green , Verde Alienígena Align Image Streams , Alinhar os fluxos de imagens Align Layers , Alinhar camadas Aligned , Alinhado Alignment Type , Tipo de Alinhamento All , Todos All 45° Rotations , Todos os 45° Rotações All 90° Rotations , Todos os 90° Rotações All [Collage] , Todos [Colagem] All but Reference Color , Todos menos Cor de Referência All Layers and Masks , Todas as camadas e máscaras All Tones , Todos os Tons All XY-Flips , Todos os XY-Flips Allow Angle , Permitir o ângulo Allow Outer Blending , Permitir mistura externa Allow Self Intersections , Permitir Auto-intersecções Alpha , Alfa Alpha Channel , Canal Alfa Alpha Mode , Modo Alfa Also Match Gradients , Igualar Gradientes Ambient (%) , Ambiente (%) Ambient Lightness , Ligeireza ambiente Amount , Montante Amplitude / Angle , Amplitude / Ângulo Anaglypgh Green/magenta Optimized , Anaglypgh Verde/magenta Optimizado Anaglyph Blue/yellow , Anaglyph azul/amarelo Anaglyph Blue/yellow Optimized , Anaglyph Blue/yellow Optimizado Anaglyph Glasses Adjustment , Ajuste dos Óculos Anaglifos Anaglyph Green/magenta , Anaglyph Verde/magenta Anaglyph Green/magenta Optimized , Anaglyph Verde/magenta Optimizado Anaglyph Reconstruction , Reconstrução Anaglyph Reconstruction Anaglyph Red/cyan Optimized , Anaglyph Red/cyan Optimizado Anaglyph: Red/Cyan , Anáglifo: Vermelho/ciano AnalogFX - Anno 1870 Color , AnalogFX - Anno 1870 Cor AnalogFX - Old Style II , AnalogFX - AnalogFX - Old Style II AnalogFX - Old Style III , AnalogFX - Antigo Estilo III AnalogFX - Sepia Color , AnalogFX - Cor Sépia Analysis Scale , Escala de análise Analysis Smoothness , Suavidade da análise And , E Angle , Ângulo Angle (%) , Ângulo (%) Angle (deg) , Ângulo (deg) Angle (deg.) , Ângulo (deg.) Angle / Size , Ângulo / Tamanho Angle Cut , Corte angular Angle Dispersion , Dispersão angular Angle Image Contour , Contorno de imagem angular Angle of Disturbance Surface , Ângulo de Superfície de Perturbação Angle of Main Nebulous Surface , Ângulo da Superfície Nebulosa Principal Angle Range , Alcance angular Angle Range (deg.) , Alcance angular (deg.) Angle Tilt , Inclinação angular Angle Variations , Variações angulares Anguish , Angústia Angular Precision , Precisão Angular Angular Tiles , Ladrilhos Angulares Anisotropic , Anisotrópico Anisotropy , Anisotropia Annular Steiner Chain Round Tiles , Pisos Anulares de Corrente de Steiner Round Tiles Anti Alias , Anti-Pseudónimo Anti-Ghosting , Anti-Fantasma Antisymmetry , Anti-simetria Any , Qualquer Apocalypse This Very Moment , Apocalypse Este Mesmo Momento Apples , Maçãs Apply Adjustments On , Aplicar Ajustamentos em Apply Color Balance , Aplicar Equilíbrio de Cores Apply External CLUT , Aplicar o CLUT externo Apply Mask , Aplicar Máscara Apply Skin Tone Mask , Aplicar Máscara de Tom de Pele Apply Transformation From , Aplicar Transformação de Aqua and Orange Dark , Aqua e Orange Dark Arabica 12 , Arábica 12 Area , Área Area Smoothness , Suavidade da área Areas Light Adjustment , Ajuste de Luzes de Áreas Areas Smoothness , Suavidade das áreas Array [Faded] , Array [Desbotado] Array [Mirrored] , Array [Espelhado] Array [Random Colors] , Array [Cores Aleatórias] Array Mode , Modo Array Arrows , Setas Arrows (Outline) , Setas (Esboço) Artistic Modern , Moderno Artístico Artistic Hard , Duro Artístico Ascii Art , Arte Ascii Aspect , Aspecto Aspect Ratio , Rácio de Aspecto Associated Color , Cor associada Astia , Ástia Attenuation , Atenuação Australia , Austrália Auto Balance , Equilíbrio Automóvel Auto Crop , Cultura Automóvel Auto Reduce Level (Level Slider Is Disabled) , Nível de Redução Automática (Level Slider Is Disabled) Auto Set Hue Inverse (Hue Slider Is Disabled) , Auto Set Hue Inverse (Deslizador de matizes está desactivado) Auto-Clean Bottom Color Layer , Camada de cor de fundo auto-limpante Auto-Reduce Number of Frames , Auto-Reduzir o número de molduras Auto-Set Periodicity , Periodicidade Auto-Set Autocrop Output Layers , Camadas de saída de autocultivo Automatic , Automático Automatic & Contrast Mask , Máscara Automática e de Contraste Automatic [Scan All Hues] , Automático [Scan All Hues] Automatic Color Balance , Balanço de cor automático Automatic Depth Estimation , Estimativa automática da profundidade Automatic Upscale for Optimum Results , Upscale automático para resultados óptimos Autumn , Outono Average , Média Average 3x3 , Média 3x3 Average 5x5 , Média 5x5 Average 7x7 , Média 7x7 Average 9x9 , Média 9x9 Average RGB , Média RGB Average Smoothness , Suavidade média Avg / Max Weight , Avg / Peso máximo Avg Left Angle (deg.) , Avg Ângulo Esquerdo (deg.) Avg Length Factor (%) , Factor de Comprimento Avg (%) Avg Right Angle (deg.) , Avg ângulo recto (deg.) Avg Thickness Factor (%) , Factor de Espessura Média (%) Axis , Eixo Azimuth , Azimute B&W , P&B B&W Pencil [Animated] , Lápis P&B [Animado] B&W Photograph , Fotografia a preto e branco B&W Stencil [Animated] , B&W Stencil [Animado] B-Color Factor , Fator B-Cor B-Color Shift , Turno de cor B B-Color Smoothness , Suavidade da cor B B-Component , B-Componente Background , Antecedentes Background Color , Cor de fundo Background Intensity , Intensidade de fundo Background Point (%) , Ponto de fundo (%) Backward , Para trás Backward Horizontal , Horizontal para trás Backward Vertical , Vertical para trás Balance , Balanço Balance Color , Equilibrar Cor Balance SRGB , Balanço SRGB Ball , Bola Balloons , Balões Balls , Bolas Band Width , Largura de banda Banding Denoise , Faixa Denoise Bandwidth , Largura de banda Barbara , Bárbara Barbed Wire , Arame Farpado Barnsley Fern , Ferna de Cevada Bars , Bares Base Reference Dimension , Dimensão de referência de base Base Scale , Balança de base Base Thickness (%) , Espessura de base (%) Basic Adjustments , Ajustes básicos Batch Processing , Processamento por lotes Bayer Filter , Filtro Bayer Bayer Reconstruction , Reconstrução da Bayer Behind , Atrás de Below , Abaixo Berlin Sky , Céu de Berlim Best Match , Melhor Partida BG Textured , BG Texturizado Bi-Directional , Bi-Direccional Bias , Viés Bicubic , Bicúbico Bidirectional [Sharp] , Bidireccional [Sharp] Bidirectional [Smooth] , Bidireccional [Liso] Bidirectional Rendering , Renderização Bidireccional Bilateral Radius , Raio Bilateral Binary , Binário Binary Digits , Dígitos Binários Bit Masking (End) , Mascaramento de bits (Fim) Bit Masking (Start) , Mascaramento de bits (Start) Black , Preto Black & White , Preto e Branco Black & White (25) , Preto e Branco (25) Black & White-1 , Preto e Branco-1 Black & White-10 , Preto e Branco-10 Black & White-2 , Preto e Branco-2 Black & White-3 , Preto e Branco-3 Black & White-4 , Preto e Branco-4 Black & White-5 , Preto e Branco-5 Black & White-6 , Preto e Branco-6 Black & White-7 , Preto e Branco-7 Black & White-8 , Preto e Branco-8 Black & White-9 , Preto e Branco-9 Black Crayon Graffiti , Grafite de Giz de cera preto Black Dices , Dados Pretos Black Level , Nível Preto Black on Transparent , Preto sobre Transparente Black on Transparent White , Preto sobre Branco Transparente Black on White , Preto sobre Branco Black Point , Ponto Negro Black Star , Estrela Negra Black to White , Preto para Branco Blacks , Negros Blade Runner , Corredor de Lâmina Blank , Em branco Bleech Bypass Green , Bleech Bypass Verde Blend , Mistura Blend [Average All] , Misturar [Média de todos] Blend [Edges] , Misturar [Bordaduras] Blend [Fade] , Misturar [Fade] Blend [Median] , Misturar [Mediana] Blend [Seamless] , Mistura [Seamless] Blend [Standard] , Mistura [Standard] Blend All Layers , Misturar todas as camadas Blend Decay , Decadência da mistura Blend Mode , Modo de mistura Blend Rays , Raios de mistura Blend Scales , Balanças de mistura Blend Size , Tamanho da mistura Blend Threshold , Limiar de Mistura Blending Mode , Modo de mistura Blending Size , Tamanho da mistura Blindness Type , Tipo de cegueira Blob 1 Color , Blob 1 Cor Blob 10 Color , Blob 10 Cor Blob 11 Color , Blob 11 Cor Blob 12 Color , Blob 12 Cor Blob 2 Color , Blob 2 Cor Blob 3 Color , Blob 3 Cor Blob 4 Color , Blob 4 Cor Blob 5 Color , Blob 5 Cor Blob 6 Color , Blob 6 Cor Blob 7 Color , Blob 7 Cor Blob 8 Color , Blob 8 Cor Blob 9 Color , Blob 9 Cor Blob Size , Tamanho da bolha Blobs Editor , Editor de Blobs Bloc , Bloco Bloc Size (%) , Tamanho do Bloco (%) Blockism , Obstrucionismo Blue , Azul Blue & Red Chrominances , Crominâncias Azul e Vermelho Blue Chroma Factor , Factor Croma Azul Blue Chroma Smoothness , Suavidade de Croma Azul Blue Chrominance , Crominância Azul Blue Cold Fade , Desbotamento Azul Frio Blue Dark , Azul Escuro Blue Factor , Fator Azul Blue House , Casa Azul Blue Ice , Gelo Azul Blue Level , Nível Azul Blue Mono , Mono Azul Blue Rotations , Rotações azuis Blue Screen Mode , Modo ecrã azul Blue Shadows 01 , Sombras Azuis 01 Blue Shift , Turno Azul Blue Smoothness , Suavidade azul Blue Steel , Aço Azul Blue Wavelength , Comprimento de onda azul Blue-Green , Azul-Verde Blur , Borrão Blur [Angular] , Borrão [Angular] Blur [Bloom] , Borrão [Bloom] Blur [Depth-Of-Field] , Borrão [Depth-Of-Field] Blur [Gaussian] , Borrão [Gaussiano] Blur [Glow] , Borrão [Borrão] Blur [Linear] , Desfoque [Linear] Blur [Multidirectional] , Desfoque [Multidireccional] Blur [Radial] , Borrão [Radial] Blur Alpha , Borrão Alfa Blur Amount , Montante de desfocagem Blur Amplitude , Amplitude de borrão Blur Dodge and Burn Layer , Camada de Queimadura e Queimadura Blur Factor , Factor de desfocagem Blur Frame , Moldura borrada Blur Percentage , Percentagem de desfocagem Blur Precision , Precisão de borrão Blur Shade , Sombra de borrão Blur Standard Deviation , Desvio Padrão Borrão Blur Strength , Força de desfocagem Blur the Mask , Desfoque a Máscara Boats , Barcos Boost , Impulso Boost Chromaticity , Impulsionar a cromaticidade Boost Contrast , Contraste de Impulso Boost Stroke , AVC de Impulso Border Color , Cor da fronteira Border Opacity , Opacidade das fronteiras Border Outline , Esboço de fronteira Border Smoothness , Suavidade da fronteira Border Thickness (%) , Espessura da fronteira (%) Border Width , Largura da fronteira Both , Ambos Bottles , Garrafas Bottom , Fundo Bottom and Left Foreground , Primeiro plano e primeiro plano à esquerda Bottom and Right Foreground , Fundo e Primeiro plano direito Bottom and Top Foreground , Primeiro e último plano Bottom Layer , Camada inferior Bottom Left , Esquerda inferior Bottom Right , Em baixo à direita Bottom Size , Tamanho do fundo Bottom-Left , Fundo-esquerda Bottom-Left Vertex (%) , Vértice Inferior-Esquerdo (%) Bottom-Right , Direita Inferior Bottom-Right Vertex (%) , Vértice Inferior Direito (%) Bouncing Balls , Bolas Saltitantes Boundaries (%) , Limites (%) Boundary , Limite Boundary Condition , Condição de Limite Boundary Conditions , Condições de fronteira Box , Caixa Box Fitting , Montagem de caixas Branches , Sucursais Braque: Landscape near Antwerp , Braque: Paisagem perto de Antuérpia Braque: Little Bay at La Ciotat , Braque: Little Bay em La Ciotat Braque: The Mandola , Braque: O Mandola Brighness , Luminosidade Bright , Brilhante Bright Green , Verde Brilhante Bright Green 01 , Verde Brilhante 01 Bright Length , Comprimento Brilhante Bright Pixels , Pixels Brilhantes Bright Teal Orange , Laranja de Teal Brilhante Bright Warm , Brilhante Aquecimento Brighter , Mais Brilhante Brightness , Luminosidade Brightness (%) , Luminosidade (%) Bristle Size , Tamanho de cerda Brownish , Castanho Brushify , Escovar Built-in Gray , Cinzento embutido Bump Factor , Fator Bump Bump Map , Mapa de Bump Burn , Queimar Burn Blur , Borrão de Queimadura Burn Strength , Força de queima Butterfly , Borboleta By Blue Chrominance , Por Crominância Azul By Blue Component , Por Componente Azul By Custom Expression , Por Expressão Personalizada By Green Component , Por Componente Verde By Iteration , Por Iteração By Lightness , Por Leveza By Luminance , Por Luminance By Red Chrominance , Por Crominância Vermelha By Red Component , Por Componente Vermelha By Value , Por Valor Camera Motion Only , Apenas movimento da câmara Camera X , Câmara X Camera Y , Câmara Y Cameraman , Operador de câmara Camouflage , Camuflagem Candle Light , Luz da vela Canvas , Tela Canvas Brightness , Luminosidade da tela Canvas Color , Cor da tela Canvas Darkness , Escuridão da tela Canvas Texture , Textura de tela Car , Automóvel Card Suits , Fatos de Cartão Cartesian Transform , Transformação cartesiana Cartoon , Desenho animado Cartoon [Animated] , Desenho animado [Animado] Cat , Gato Category , Categoria Cell Size , Tamanho da célula Center , Centro Center (%) , Centro (%) Center Background , Antecedentes centrais Center Foreground , Centro de Primeiro plano Center Help , Centro de Ajuda Center Size , Tamanho do centro Center Smoothness , Suavidade do centro Center X , Centro X Center X-Shift , Centro X-Shift Center Y , Centro Y Center Y-Shift , Centro Y-Shift Centering (%) , Centralização (%) Centering / Scale , Centralização / Escala Centers Color , Centros Cor Centers Radius , Centros Radius Centimeter , Centimetro Central Perspective Outdoor , Perspectiva Central Exterior Central Perspective Indoor , Perspectiva Central Indoor Central Perspective Outdoor , Perspectiva Central Exterior Centre , Centro Chalk It Up , Giz para cima Channel #1 , Canal #1 Channel #2 , Canal #2 Channel #3 , Canal #3 Channel Processing , Processamento de canais Channel(s) , Canal(es) Channels , Canais Channels to Layers , Canais para camadas Charcoal , Carvão vegetal Checkered Inverse , Xadrez Inverso Chemical 168 , Químico 168 Chessboard , Tabuleiro de xadrez Chick , Pinto Chroma Noise , Ruído cromado Chromatic Aberrations , Aberrações Cromáticas Chromaticity From , Cromaticidade de Chrome 01 , Crómio 01 Chrominances Only (ab) , Apenas crominâncias (ab) Chrominances Only (CbCr) , Apenas Crominâncias (CbCr) Cine Bright , Cine Brilhante Cine Drama , Drama Cine Cine Vibrant , Cine Vibrante Cinematic (8) , Cinemática (8) Cinematic for Flog , Cinematic para Flog Cinematic Lady Bird , Pássaro Dama Cinematográfica Cinematic Mexico , Cinematic México Cinematic Travel (29) , Viagens Cinematográficas (29) Circle , Círculo Circle (Inv.) , Círculo (Inv.) Circle 1 , Círculo 1 Circle 2 , Círculo 2 Circle Abstraction , Abstracção de Círculos Circle Art , Arte em Círculo Circle to Square , Círculo ao quadrado Circle Transform , Transformação de Círculos Circles , Círculos Circles (Outline) , Círculos (Esboço) Circles 1 , Círculos 1 Circles 2 , Círculos 2 City 7 , Cidade 7 Clarity , Clareza Classic Chrome , Crómio Clássico Classic Teal and Orange , Clássico Teal e Laranja Clean , Limpar Clean Text , Texto limpo Clear Control Points , Pontos de Controlo Limpos Closing , Encerramento Closing - Opening , Encerramento - Abertura Closing - Original , Encerramento - Original Clouds , Nuvens CLUT from After - Before Layers , CLUT de Depois - Antes das Camadas CLUT Opacity , Opacidade da CLUT CM[Yellow]K , CM[Amarelo]K CMY[Key] , CMY[Chave] CMYK [cyan] , CMYK [cian] CMYK [Key] , CMYK [chave] CMYK [Yellow] , CMYK [Amarelo] CMYK Tone , Tom CMYK Coarse , Grosseiro Coarsest (faster) , Mais grosseiro (mais rápido) Code , Código Coefficients , Coeficientes Coffee 44 , Café 44 Coherence , Coerência Color , Cor Color (rich) , Cor (rica) Color 1 , Cor 1 Color 1 (Up/Left Corner) , Cor 1 (Canto superior/esquerdo) Color 2 , Cor 2 Color 2 (Up/Right Corner) , Cor 2 (Canto direito/cima) Color 3 , Cor 3 Color 3 (Bottom/Left Corner) , Cor 3 (Canto inferior/esquerdo) Color 4 , Cor 4 Color 4 (Bottom/Right Corner) , Cor 4 (Fundo/Canto direito) Color A , Cor A Color Abstraction Opacity , Opacidade de Abstracção de Cor Color Abstraction Paint , Tinta de Abstracção de Cor Color B , Cor B Color Balance , Equilíbrio de cores Color Basis , Base de cor Color Blending , Mistura de cores Color Blindness , Cegueira por cor Color Blue-Yellow , Cor Azul-amarelo Color Boost , Impulso de cor Color Burn , Queimadura por cor Color C , Cor C Color Channel Smoothing , Alisamento de canais de cor Color Channels , Canais de cor Color D , Cor D Color Dispersion , Dispersão de cor Color Doping , Dopagem por cor Color E , Cor E Color Effect Mode , Modo Efeito Cor Color F , Cor F Color G , Cor G Color Gamma , Gama de cor Color Grading , Classificação de cor Color Green-Magenta , Cor Verde-Magenta Color Highlights , Destaques de cor Color Image , Imagem a cores Color Intensity , Intensidade da cor Color Mask , Máscara de cor Color Mask [Interactive] , Máscara de cor [Interactivo] Color Median , Cor Mediana Color Metric , Métrica de cor Color Midtones , Meia cor de tons Color Mode , Modo cor Color Model , Modelo de cor Color Negative , Cor Negativa Color on White , Cor sobre branco Color Overall Effect , Efeito global da cor Color Presets , Predefinições de cor Color Quantization , Quantização de cor Color Rendering , Renderização de cores Color Shading (%) , Sombreamento por cor (%) Color Shadows , Sombras de cor Color Smoothness , Suavidade de cor Color Space , Espaço de cor Color Spots + Extrapolated Colors + Lineart , Pontos de cor + Cores Extrapoladas + Lineart Color Spots + Lineart , Spots de cor + Lineart Color Strength , Resistência da cor Color Temperature , Temperatura de cor Color Tolerance , Tolerância de cor Color Variation [Random -1] , Variação de cor [Random -1] Colored Geometry , Geometria colorida Colored Grain , Grão colorido Colored Lineart , Lineart colorido Colored on Black , Colorido a preto Colored on Transparent , Colorido em Transparente Colored Outline , Esboço colorido Colored Pencils , Lápis coloridos Colored Regions , Regiões coloridas Colorful , Colorido Colorful 0209 , Colorido 0209 Colorful Blobs , Blobs coloridos Coloring , Coloração Colorize [Interactive] , Colorir [Interactivo] Colorize [Photographs] , Colorir [Fotografias] Colorize [with Colormap] , Colorir [com Colormap] Colorize Lineart [Auto-Fill] , Colorir Lineart [Auto-Preenchimento] Colorize Lineart [Propagation] , Colorir Lineart [Propagação] Colorize Lineart [Smart Coloring] , Colorir Lineart [Coloração Inteligente] Colorize Mode , Modo Colorir Colorized Image (1 Layer) , Imagem colorida (1 camada) Colormap Type , Tipo Colormap Colors , Cores Colors A , Cores A Colors B , Cores B Colors Only , Apenas Cores Colors Only (1 Layer) , Apenas Cores (1 Camada) Colors to Layers , Cores para camadas Colour , Cor Colour Channels , Canais de cor Colour Model , Modelo a cores Colour Smoothing , Alisamento da cor Colour Space Mode , Modo Espaço de Cor Column by Column , Coluna por Coluna Comic Style , Estilo Cómico Comix Colors , Cores Comix Components , Componentes Composed Layers , Camadas Compostas Compress Highlights , Destaques da Compressão Compression Blur , Borrão de Compressão Compression Filter , Filtro de Compressão Computation Mode , Modo de cálculo Conflict 01 , Conflito 01 Conformal Maps , Mapas de conformidade Connectivity , Conectividade Connectors Centering , Conectores centrados Connectors Variability , Variabilidade dos Conectores Constrain Image Size , Tamanho da imagem de Constrain Constrain Values , Valores de Constrição Constrained Sharpen , Afiação Restrita Constraint Radius , Raio de Restrição Continuous Droste , Droste Contínuo Contour Coherence , Coerência de Contorno Contour Detection (%) , Detecção de contornos (%) Contour Normalization , Normalização de Contorno Contour Precision , Precisão de Contorno Contour Threshold , Limiar de Contorno Contour Threshold (%) , Limiar de Contorno (%) Contours , Contornos Contours + Flocon/Snowflake , Contornos + Flocon/Flake de neve Contours Recursion , Recurssão de contornos Contrast , Contraste Contrast (%) , Contraste (%) Contrast Smoothness , Suavidade do contraste Contrast Swiss Mask , Contraste Máscara Suíça Contrast with Highlights Protection , Contraste com a Protecção dos Destaques Contrasty Afternoon , Tarde de Contraste Contrasty Green , Verde de contraste Contributors , Contribuintes Control Point 1 , Ponto de Controlo 1 Control Point 2 , Ponto de Controlo 2 Control Point 3 , Ponto de Controlo 3 Control Point 4 , Ponto de Controlo 4 Control Point 5 , Ponto de Controlo 5 Control Point 6 , Ponto de Controlo 6 Convolve , Convolver Cool , Fixe Cool (256) , Frio (256) Cool / Warm , Frio / Quente Copper , Cobre Corner Brightness , Brilho de canto Correlated Channels , Canais relacionados Counter Clockwise , No sentido contrário ao dos ponteiros do relógio Course 4 , Curso 4 Cracks , Rachaduras Crease , Vinco Creative Pack (33) , Pacote Criativo (33) Crip Winter , Crip Inverno Crisp Romance , Romance Cristalino Crisp Warm , Quente Crocante Criterion , Critério Crop , Cultura Crop (%) , Cultura (%) Cross Process CP 130 , Processo Cruzado CP 130 Cross Process CP 14 , Processo Cruzado CP 14 Cross Process CP 15 , Processo Cruzado CP 15 Cross Process CP 16 , Processo Cruzado CP 16 Cross Process CP 18 , Processo Cruzado CP 18 Cross Process CP 3 , Processo Cruzado CP 3 Cross Process CP 4 , Processo Cruzado CP 4 Cross Process CP 6 , Processo Cruzado CP 6 Cross-Hatch Amount , Montante de escotilha cruzada Crossed , Cruzado Crosses 1 , Cruzes 1 Crosses 2 , Cruzes 2 Crosshair , Crina cruzada CRT Sub-Pixels , Sub-pixels CRT Crushin , Esmagamento Crystal , Cristal Crystal Background , Antecedentes de Cristal Cube , Cubo Cube (256) , Cubo (256) Cubicle 99 , Cubículo 99 Cubism , Cubismo Cubism on Color Abstraction , Cubismo na Abstracção da Cor Cup , Taça Cupid , Cupido Curvature , Curvatura Curvature Shadow , Sombra da Curvatura Curve Amount , Valor da Curva Curve Angle , Ângulo de Curva Curve Length , Comprimento da Curva Curved , Curva Curved Stroke , Curso Curvo Curves , Curvas Curves Previously Defined , Curvas Previamente Definidas Custom , Personalizado Custom Code [Global] , Código personalizado [Global] Custom Code [Local] , Código personalizado [Local] Custom Correction Map , Mapa de Correcção Personalizado Custom Depth Correction , Correcção de Profundidade Personalizada Custom Depth Maps Stream , Fluxo de mapas de profundidade personalizados Custom Dictionary , Dicionário de Costumes Custom Filter Code , Código de filtro personalizado Custom Formula , Fórmula personalizada Custom Kernel , Kernel personalizado Custom Layers , Camadas personalizadas Custom Layout , Layout personalizado Custom Style (Bottom Layer) , Estilo personalizado (Camada inferior) Custom Style (Top Layer) , Estilo personalizado (Camada superior) Custom Transform , Transformação personalizada Customize CLUT , Personalizar a CLUT Cut , Corte Cut & Normalize , Cortar & Normalizar Cut High , Corte Alto Cut Low , Corte baixo Cutout , Recorte Cyan , Ciano Cyan Factor , Fator Ciano Cyan Smoothness , Suavidade do Ciano Cycle Layers , Camadas do ciclo Cycles , Ciclos Cylinder , Cilindro D and O 1 , D e O 1 Damping per Octave , Amortecimento por Oitava Dark Motive , Motivo Escuro Dark Boost , Impulso Negro Dark Color , Cor escura Dark Edges , Bordaduras Escuras Dark Green 02 , Verde Escuro 02 Dark Green 1 , Verde Escuro 1 Dark Grey , Cinzento Escuro Dark Length , Comprimento escuro Dark Motive , Motivo Escuro Dark Pixels , Pixels Escuros Dark Place 01 , Lugar Escuro 01 Dark Screen , Tela escura Dark Sky , Céu Escuro Dark Walls , Paredes Escuras Darkness , Escuridão Darkness Level , Nível de escuridão Date 39 , Data 39 Day for Night , Dia para a Noite Daylight Scene , Cena da luz do dia Debug Font Size , Tamanho da letra Debug Decompose , Decompor Decompose Channels , Canais de Decomposição Decoration , Decoração Decreasing , Diminuindo Deep , Profundo Deep Blue , Azul profundo Deep Dark Warm , Aquecimento Escuro Profundo Deep High Contrast , Alto contraste profundo Deep Teal Fade , Desbotamento profundo do Teal Deep Warm Fade , Desbotamento profundo Default , Por defeito Defects Contrast , Contraste de Defeitos Defects Density , Densidade de Defeitos Defects Size , Tamanho dos Defeitos Defects Smoothness , Defeitos suavidade Deform , Deformação Delaunay: Portrait De Metzinger , Delaunay: Retrato De Metzinger Delaunay: Windows Open Simultaneously , Delaunay: Janelas abertas simultaneamente Delete Layer Source , Eliminar a fonte da camada Denim , Ganga Density , Densidade Density (%) , Densidade (%) Depth , Profundidade Depth Fade In Frames , Desbotamento de profundidade em molduras Depth Fade Out Frames , Molduras de profundidade Depth Field Control , Controlo de Campo de Profundidade Depth Map , Mapa de profundidade Depth Map Construction , Construção do Mapa de Profundidade Depth Map Only , Apenas Mapa de Profundidade Depth Map Reconstruction , Reconstrução do Mapa de Profundidade Depth Maps Only , Apenas mapas de profundidade Depth-Of-Field Type , Tipo Profundidade-Ocampo Desaturate (%) , Desaturado (%) Desaturate Norm , Norma Desaturada Descent Method , Método de descida Descreen , Descreve Desert Gold 37 , Ouro do Deserto 37 Destination (%) , Destino (%) Destination X-Tiles , Destino X-Tiles Destination Y-Tiles , Destino Y-Tiles Detail , Detalhe Detail Level , Nível de detalhe Detail Reconstruction Detection , Detecção Detalhada de Reconstrução Detail Reconstruction Smoothness , Detalhe de Reconstrução Suavidade de Reconstrução Detail Reconstruction Strength , Força de Reconstrução Detalhada Detail Reconstruction Style , Estilo de Reconstrução Detalhada Detail Scale , Escala de detalhe Detail Strength , Força dos detalhes Details , Detalhes Details Amount , Detalhes Montante Details Equalizer , Detalhes Equalizador Details Scale , Detalhes Escala Details Smoothness , Detalhes Suavidade Details Strength (%) , Detalhes Força (%) Detect Skin , Detectar a pele Deuteranomaly , Deuteranomalia Deviation , Desvio Diamond , Diamante Diamond (Inv.) , Diamante (Inv.) Diamonds , Diamantes Diamonds (Outline) , Diamantes (Esboço) Dices , Dados Dices with Colored Numbers , Dados com Números Coloridos Dices with Colored Sides , Dados com Lados Coloridos Difference , Diferença Difference Mixing , Mistura de diferenças Difference of Gaussians , Diferença de gaussianos Different Axis , Eixo diferente Diffuse (%) , Difuso (%) Diffuse Shadow , Sombra difusa Diffusion , Difusão Diffusion Tensors , Tensores de difusão Diffusivity , Difusividade Digits , Dígitos Dilatation , Dilatação Dilate , Dilatar Dilation , Dilatação Dilation - Original , Dilatação - Original Dilation / Erosion , Dilatação / Erosão Dimension , Dimensão Dimension [Diff] , Dimensão [Diff] Dimension A , Dimensão A Dimensions (%) , Dimensões (%) Dimensions Pixels , Dimensões Pixels Dipole: 1/(4*z^2-1) , Dipolo: 1/(4*z^2-1) Direct , Directo Direction , Direcção Directions 23 , Instruções 23 Dirty , Sujo Disable , Desactivar Disabled , Deficientes Discard Contour Guides , Guias de contorno de descarte Discard Transparency , Transparência das devoluções Disco , Discoteca Display , Mostrar Display Blob Controls , Controlos do Blob Display Display Color Axes , Mostrar eixos de cor Display Contours , Mostrar contornos Display Coordinates , Coordenadas da exposição Display Coordinates on Preview Window , Mostrar Coordenadas na Janela de Pré-visualização Display Debug Info on Preview , Mostrar Informação de Depuração na Pré-visualização Distance , Distância Distance (Fast) , Distância (rápido) Distance Transform , Transformação à distância Distort Lens , Lente de Distorção Distortion Factor , Factor de Distorção Distortion Surface Angle , Distorção de Ângulo de Superfície Distortion Surface Position , Distorção Posição Superficial Disturbance Scale-By-Factor , Perturbação Escala-por-factor Disturbance X , Perturbação X Disturbance Y , Perturbação Y Dither Output , Saída de Dither Divide , Divida Do Not Flatten Transparency , Não aplaudir a transparência Dodge and Burn , Dodge e Burn Dodge Strength , Força de Dodge DOF Analyzer , Analisador DOF Dog , Cão Don't Sort , Não Classificar DoNothing , DoNada Dot Size , Tamanho do ponto Dots , Pontos Download External Data , Descarregar dados externos Dragon Curve , Curva do Dragão Dragonfly , Libélula Drawing Mode , Modo de Desenho Drawn Montage , Montagem desenhada Dream , Sonho Dream 1 , Sonho 1 Dream 85 , Sonho 85 Dream Smoothing , Alisamento de sonhos Drop Shadow , Sombra de gota Drop Shadow 3D , Sombra de gota 3D Drop Water , Água gota a gota Duck , Pato Duplicate Bottom , Fundo Duplicado Duplicate Horizontal , Duplicar Horizontal Duplicate Left , Esquerda duplicada Duplicate Right , Duplicar o direito Duplicate Top , Duplicar a parte superior Duplicate Vertical , Vertical Duplicado Duration , Duração Dynamic Range Increase , Aumento do alcance dinâmico Eagle , Águia Earth , Terra Earth Tone Boost , Impulso de Tom de Terra Easy Skin Retouch , Retoque Fácil da Pele Edge , Borda Edge Antialiasing , Antialiasing Edge Edge Attenuation , Atenuação de Bordos Edge Behavior X , Comportamento do bordo X Edge Behavior Y , Comportamento de bordo Y Edge Detect Includes Chroma , Detecção de Bordos Inclui Chroma Edge Exponent , Expoente de Borda Edge Fidelity , Fidelidade do bordo Edge Influence , Influência dos bordos Edge Mask , Máscara de Borda Edge Sensitivity , Sensibilidade dos bordos Edge Shade , Sombra da borda Edge Simplicity , Simplicidade do bordo Edge Smoothness , Suavidade do bordo Edge Thickness , Espessura do bordo Edge Threshold , Limiar de borda Edge Threshold (%) , Limiar do bordo (%) Edge-Oriented , Orientado para o Edge-Oriented Edges , Bordaduras Edges (%) , Bordaduras (%) Edges [Animated] , Bordaduras [Animado] Edges Offsets , Compensações de bordas Edges on Fire , Bordas em Chamas Edges-0.5 (beware: Memory-Consuming!) , Edges-0,5 (cuidado: Consumo de memória!) Edges-1 (beware: Memory-Consuming!) , Edges-1 (cuidado: Consumo de memória!) Edges-2 (beware: Memory-Consuming!) , Edges-2 (cuidado: Consumo de memória!) Effect Strength , Resistência ao efeito Effect X-Axis Scaling , Efeito Escala do Eixo X Effect Y-Axis Scaling , Efeito de escala do eixo Y Eight Layers , Oito camadas Eight Threads , Oito fios Elegance 38 , Elegância 38 Elephant , Elefante Elevation , Elevação Elevation (%) , Elevação (%) Ellipse , Elipse Ellipse Painting , Pintura com elipse Ellipse Ratio , Relação de elipse Ellipsionism , Elipsionismo Ellipsionism Opacity , Elipsionismo Opacidade Ellipsoid , Elipsóide Emboss , Gravar Enable Antialiasing , Activar o Antialiasing Enable Interpolated Motion , Activar o Movimento Interpolado Enable Morphology , Habilitar Morfologia Enable Paintstroke , Habilitar Pincelada Enable Segmentation , Habilitar Segmentação Enchanted , Encantado End Color , Cor final End Frame Number , Número da moldura final End of Mid-Tones , Fim dos meios-tons End Point Connectivity , Conectividade do Ponto Final End Point Rate (%) , Taxa de Ponto Final (%) Ending Angle , Ângulo de Fim Ending Color , Cor final Ending Feathering , Pena de Fim Ending Point (%) , Ponto de Fim (%) Ending Scale (%) , Escala de fim (%) Ending Value , Valor Final Ending X-Centering , Terminar a X-Centrering Ending Y-Centering , Terminar o Y-Centering Enhance Detail , Detalhe de melhoria Enhance Details , Melhorar Detalhes Equalization , Equalização Equalization (%) , Equalização (%) Equalize , Equalizar Equalize and Normalize , Equalizar e Normalizar Equalize at Each Step , Equalizar em Cada Passo Equalize HSI-HSL-HSV , Equalizar o HSI-HSL-HSV Equalize HSV , Equalizar HSV Equalize Light , Equalizar a luz Equalize Local Histograms , Equalizar Histogramas Locais Equalize Shadow , Equalizar Sombra Equation Plot [Parametric] , Lote de Equação [Paramétrico] Equation Plot [Y=f(X)] , Lote de Equação [Y=f(X)] Equirectangular to Nadir-Zenith , Equirectangular a Nadir-Zenith Erosion , Erosão Erosion / Dilation , Erosão / Dilatação Etch Tones , Tons de Etch Eterna for Flog , Eterna para Flog Euclidean , Euclidiano Euclidean - Polar , Euclidiano - Polar Exclusion , Exclusão Expand , Expandir Expand Background Reconstruction , Expandir a Reconstrução de Fundo Expand Shadows , Expandir as Sombras Expand Size , Expandir tamanho Expanding Mirrors , Espelhos em expansão Expired (fade) , Expirado (desbotado) Expired (polaroid) , Expirado (polaroid) Expired 69 , Expirou 69 Exponent , Exponente Exponent (Imaginary) , Exponente (Imaginário) Exponent (Real) , Exponente (Real) Exponential , Exponencial Export RGB-565 File , Exportar ficheiro RGB-565 Exposure , Exposição Expression , Expressão Extend 1px , Prolongar 1px External Transparency , Transparência externa Extra Smooth , Extra Suave Extract Foreground [Interactive] , Extracto em Primeiro Plano [Interactivo] Extract Objects , Extracção de objectos Extrapolate Colors As , Cores Extrapoladas como Extrapolated Colors + Lineart , Cores Extrapoladas + Lineart Extreme , Extremo Fade End , Fim do desvanecimento Fade Layers , Camadas de desbotamento Fade Start , Início do desvanecimento Fade Start (%) , Início do desvanecimento (%) Faded , Desbotado Faded (alt) , Desbotado (alt) Faded (analog) , Desbotado (analógico) Faded (extreme) , Desbotado (extremo) Faded (vivid) , Desbotado (vívido) Faded 47 , Desbotado 47 Faded Green , Verde desbotado Faded Look , Olhar desbotado Faded Print , Impressão desbotada Faded Retro 01 , Retro Desbotado 01 Faded Retro 02 , Retro 02 desbotado Fading , Desvanecimento Fading Shape , Forma em desvanecimento Fall Colors , Cores de outono Far Point Deviation , Desvio de Ponto Longo Fast , Rápido Fast (Approx.) , Rápido (Aprox.) Fast (Low Precision) Preview , Pré-visualização rápida (Baixa Precisão) Fast Approximation , Aproximação rápida Fast Blend , Mistura rápida Fast Blend Preview , Pré-visualização rápida da mistura Fast Recovery , Recuperação rápida Fast Resize , Rápido Redimensionamento Faux Infrared , Infravermelho falso Feature Analyzer Smoothness , Suavidade do Analisador de Característica Feature Analyzer Threshold , Limiar do Analisador de Característica Felt Pen , Caneta de feltro FFT Preview , Pré-visualização FFT Fibers , Fibras Fibers Amplitude , Amplitude das fibras Fibers Smoothness , Suavidade das fibras Fibrousness , Fibrosidade Fidelity Chromaticity , Fidelidade Cromática Fidelity Smoothness (Coarsest) , Fidelidade Suavidade (Mais grosseira) Fidelity Smoothness (Finest) , Fidelidade Suavidade (Finest) Fidelity to Target (Coarsest) , Fidelidade ao Alvo (Coarsest) Fidelity to Target (Finest) , Fidelidade ao Alvo (Finest) Filename , Nome do ficheiro Fill Holes , Encher furos Fill Holes % , Encher furos % Fill Transparent Holes , Encher furos transparentes Filled , Preenchido Filled Circles , Círculos Cheios Filling , Preenchimento Film 0987 , Filme 0987 Film 9879 , Filme 9879 Film Highlight Contrast , Contraste de destaque do filme Film Print 01 , Impressão de filme 01 Film Print 02 , Impressão de filme 02 Filmic , Filme Filter Design , Desenho do filtro Final Image , Imagem final Fine , Muito bem Fine 2 , Multa 2 Fine Details Smoothness , Detalhes Finos Suavidade Fine Details Threshold , Limiar de Detalhes Finos Fine Noise , Ruído Fino Fine Scale , Escala Fina Finest (slower) , Mais fino (mais lento) Finger Paint , Tinta para os dedos Finger Size , Tamanho do dedo Fire Effect , Efeito de Fogo Fireworks , Fogos de artifício First , Primeiro First Color , Primeira cor First Frame , Primeiro Quadro First Offset , Primeira Compensação First Radius , Primeiro Raio First Size , Primeiro tamanho Fish-Eye , Olho de Peixe Fish-Eye Effect , Efeito Olho de Peixe Fitting Function , Função de encaixe Five Layers , Cinco camadas Flag , Bandeira Flag (256) , Bandeira (256) Flat , Apartamento Flat 30 , Apartamento 30 Flat Color , Cor plana Flat Regions Removal , Remoção de regiões planas Flat-Shaded , Com paredes planas Flatness , Planeza Flip Left / Right , Virar para a esquerda / direita Flip Left/Right , Virar à esquerda/direita Flip The Pattern , Virar o Padrão Flip Tolerance , Tolerância de viragem Flower , Flor Foggy Night , Noite Nebulosa Folder Name , Nome da pasta Font Colors , Cores da fonte Font Height (px) , Altura da fonte (px) Force Gray , Forçar o cinzento Force Re-Download from Scratch , Forçar o Re-Download a partir do Rastro Force Tiles to Have Same Size , Forçar os azulejos a terem o mesmo tamanho Force Transparency , Forçar a transparência Foreground Color , Cor do primeiro plano Form , Formulário Formula , Fórmula Forward , Avançar Forward Horizontal , Avançar Horizontal Forward Horizontal , Avançar Horizontal Forward Vertical , Vertical para a frente Four Layers , Quatro camadas Four Threads , Quatro fios Fourier Analysis , Análise de Fourier Fourier Filtering , Filtragem de Fourier Fourier Transform , Transformada de Fourier Fourier Watermark , Marca de água de Fourier Fractal Noise , Ruído Fractal Fractal Points , Pontos Fractais Fractal Set , Conjunto Fractal Fractal Whirl , Turbilhão fractal Fractured Clouds , Nuvens fracturadas Fragment Blur , Desfoque do fragmento Frame (px) , Moldura (px) Frame [Blur] , Moldura [Borrão] Frame [Cube] , Moldura [Cubo] Frame [Fuzzy] , Moldura [Fuzzy] Frame [Mirror] , Moldura [Espelho] Frame [Painting] , Moldura [Pintura] Frame [Pattern] , Moldura [Molde] Frame [Regular] , Moldura [Regular] Frame [Round] , Moldura [Redonda] Frame [Smooth] , Moldura [Smooth] Frame as a New Layer , Moldura como uma nova camada Frame Color , Cor da moldura Frame Files Format , Formato dos ficheiros de fotogramas Frame Format , Formato da moldura Frame Size , Tamanho da moldura Frame Skip , Saltar Moldura Frame Type , Tipo de moldura Frame Width , Largura da moldura Frames , Molduras Frames Offset , Compensação de Molduras Freaky B&W , B&W bizarro Freaky Details , Detalhes esquisitos Freeze , Congelar French Comedy , Comédia Francesa Frequency , Frequência Frequency (%) , Frequência (%) Frequency Analyzer , Analisador de Frequência Frequency Range , Gama de Frequências Freqy Pattern , Padrão de Freqy Friends Hall of Fame , Salão da Fama dos Amigos From Input , A partir de Input From Reference Color , Da cor de referência Frosted Beach Picnic , Piquenique na praia gelada Fruits , Frutos Fuji Astia 100F , Fuji Ástia 100F Fuji FP-100c +++ , Fuji FP-100c ++++ Fuji FP-100c Negative , Fuji FP-100c Negativo Fuji FP-100c Negative + , Fuji FP-100c Negativo + Fuji FP-100c Negative ++ , Fuji FP-100c Negativo ++ Fuji FP-100c Negative +++ , Fuji FP-100c Negativo +++ Fuji FP-100c Negative ++a , Fuji FP-100c Negativo ++a Fuji FP-100c Negative - , Fuji FP-100c Negativo - Fuji FP-100c Negative -- , Fuji FP-100c Negativo -- Fuji FP-3000b +++ , Fuji FP-3000b ++++ Fuji FP-3000b Negative , Fuji FP-3000b Negativo Fuji FP-3000b Negative + , Fuji FP-3000b Negativo + Fuji FP-3000b Negative ++ , Fuji FP-3000b Negativo ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Negativo +++ Fuji FP-3000b Negative - , Fuji FP-3000b Negativo - Fuji FP-3000b Negative -- , Fuji FP-3000b Negativo -- Fuji FP-3000b Negative Early , Fuji FP-3000b Negativo Antecipado Fuji Superia 100 ++ , Fuji Superia 100 +++ Fuji Superia 800 ++ , Fuji Superia 800 +++ Full , Completo Full (Allows Multi-Layers) , Completo (Permite Multi-Layers) Full (Slower) , Cheio (mais lento) Full Bottom/top , Fundo/cabeceira completa Full Colors , Cores Completas Full HD Frame Packing , Embalagem de estrutura Full HD Full Side by Side Keep Uncompressed , Lado a Lado Manter sem comprimir Full Side by Side Keep Width , Lado a lado Largura de Guarda Lado a Lado Full Side by Uncompressed , Lado a lado, sem compressão Fusion 88 , Fusão 88 Futuristic Bleak 1 , Bleak Futurístico 1 Futuristic Bleak 2 , Bleak Futurístico 2 Futuristic Bleak 3 , Bleak Futurístico 3 Futuristic Bleak 4 , Bleak Futurístico 4 G'MIC Operator , G'MIC Operador G/M Smoothness , G/M suavidade Gain , Ganho Games & Demos , Jogos & Demos Gamma , Gama Gamma (%) , Gama (%) Gamma Balance , Balanço Gamma Gamma Compensation , Compensação Gama Gamma Equalizer , Equalizador Gamma Gaussian , Gaussiano Gear , Equipamento Generate Random-Colors Layer , Gerar camadas de cores aleatórias Generic Fuji Astia 100 , Genéricos Fuji Astia 100 Generic Fuji Provia 100 , Genéricos Fuji Provia 100 Generic Fuji Velvia 100 , Genéricos Fuji Velvia 100 Generic Kodachrome 64 , Genéricos Kodachrome 64 Generic Kodak Ektachrome 100 VS , Genéricos Kodak Ektachrome 100 VS Generic Skin Structure , Estrutura genérica da pele Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Modo Suave (substitui o Brilho Mínimo e a Relação Vermelho:Azul) Geometry , Geometria Global Mapping , Mapeamento Global Gmicky & Wilber (by Mahvin) , Gmicky & Wilber (por Mahvin) Gmicky (by Deevad) , Gmicky (por Deevad) Gmicky (by Mahvin) , Gmicky (por Mahvin) Going for a Walk , Passear a pé Gold , Ouro Golden , Dourado Golden (bright) , Dourado (brilhante) Golden (fade) , Ouro (desbotar) Golden (mono) , Dourado (mono) Golden (vibrant) , Dourado (vibrante) GoldFX - Bright Summer Heat , GoldFX - Calor Brilhante de Verão GoldFX - Hot Summer Heat , GoldFX - Calor quente de Verão GoldFX - Perfect Sunset 01min , GoldFX - Pôr-do-sol perfeito 01min GoldFX - Perfect Sunset 05min , GoldFX - Pôr-do-sol perfeito 05min GoldFX - Perfect Sunset 10min , GoldFX - Pôr-do-sol perfeito 10min GoldFX - Spring Breeze , GoldFX - Brisa da Primavera GoldFX - Summer Heat , GoldFX - Calor de Verão Good Morning , Bom dia Gradient , Gradiente Gradient [Corners] , Gradiente [Cantos] Gradient [Custom Shape] , Gradiente [Forma Personalizada] Gradient [from Line] , Gradiente [da linha] Gradient [Linear] , Gradiente [Linear] Gradient [Radial] , Gradiente [Radial] Gradient [Random] , Gradiente [Random] Gradient Norm , Norma Gradiente Gradient Preset , Pré-ajuste de gradiente Gradient RGB , RGB Gradiente Gradient Smoothness , Suavidade Gradiente Gradient Values , Valores gradientes Grain , Grão Grain (Highlights) , Grão (Destaques) Grain (Midtones) , Grão (Midtones) Grain (Shadows) , Grão (Sombras) Grain Extract , Extracto de grão Grain Merge , Fusão de cereais Grain Only , Apenas cereais Grain Scale , Escala de grão Grain Tone Fading , Desvanecimento do tom do grão Grain Type , Tipo de grão Granularity , Granularidade Graphic Boost , Impulso Gráfico Graphic Colours , Cores Gráficas Graphic Novel , Novela gráfica Graphix Colors , Cores do Graphix Grayscale , Escala de cinzentos Greece , Grécia Green , Verde Green 15 , Verde 15 Green 2025 , Verde 2025 Green Action , Acção Verde Green Afternoon , Tarde Verde Green Blues , Blues Verde Green Conflict , Conflito Verde Green Day 01 , Dia Verde 01 Green Day 02 , Dia Verde 02 Green Factor , Factor Verde Green G09 , Verde G09 Green Indoor , Indoor Verde Green Level , Nível Verde Green Light , Luz Verde Green Mono , Mono Verde Green Rotations , Rotações verdes Green Shift , Turno Verde Green Smoothness , Suavidade verde Green Wavelength , Comprimento de onda verde Green Yellow , Verde Amarelo Green-Red , Vermelho-verde Greenish Contrasty , Contraste Esverdeado Greenish Fade , Desvanecer o esverdeamento Greenish Fade 1 , Desbotamento esverdeado 1 Grey , Cinzento Greyscale , Escala de cinzentos Grid , Grelha Grid [Cartesian] , Grelha [cartesiano] Grid [Hexagonal] , Grelha [Hexagonal] Grid [Triangular] , Grelha [Triangular] Grid Divisions , Divisões de Grelha Grid Smoothing , Alisamento da grelha Grid Width , Largura da Grelha Grow Alpha , Crescer Alfa Guide As , Guia Como Guide Mix , Mistura de Guias Guide Recovery , Guia de Recuperação Gum Leaf , Folha de Goma Gummy , Goma H Cutoff , Cortar H Hair Locks , Fechaduras de cabelo HaldCLUT Filename , HaldCLUT Nome de ficheiro Half Bottom/top , Meia parte de baixo/topo Half Side by Side , Meio Lado a Lado Halftone , Meio-tom Halftone Shapes , Formas de meio-tom Hanoi Tower , Torre de Hanói Hard , Difícil Hard Dark , Escuro Hard Light , Luz dura Hard Mix , Mistura dura Hard Sketch , Esboço duro Hard Teal Orange , Laranja Teal Dura Hardlight , Luzes duras Harsh Day , Dia duro Harsh Sunset , Pôr-do-sol duro HDR Effect (Tone Map) , Efeito HDR (Mapa de Tom) Heart , Coração Hearts , Corações Hearts (Outline) , Corações (Esboço) Height , Altura Height (%) , Altura (%) Hexagon , Hexágono High , Alto High (Slower) , Alto (mais lento) High Frequency , Alta frequência High Frequency Layer , Camada de Alta Frequência High Key , Chave alta High Pass , Passe Alto High Quality , Alta Qualidade High Scale , Escala alta High Speed , Alta velocidade High Value , Alto valor Higher Mask Threshold (%) , Limiar de Máscara Superior (%) Highlight , Destaque Highlight (%) , Destaque (%) Highlight Bloom , Destaque Bloom Highlights , Destaques Highlights Abstraction , Destaques Abstracção Highlights Brightness , Destaques Brilho Highlights Color Intensity , Destaques Intensidade da cor Highlights Crossover Point , Destaques Crossover Point Highlights Hue , Destaques Tonalidade Highlights Lightness , Destaca a leveza Highlights Protection , Destaques Protecção Highlights Selection , Selecção de Destaques Highlights Threshold , Destaques Limiar Highlights Zone , Zona de Destaques Highres CLUT , CLUT Highres Histogram , Histograma Histogram Analysis , Análise de Histograma Histogram Transfer , Transferência de Histograma Hokusai: The Great Wave , Hokusai: A Grande Onda Homogeneity , Homogeneidade Hope Poster , Cartaz da Esperança Horisontal Length , Comprimento Horisontal Horizon Leveling (deg) , Nivelamento Horizoniano (deg) Horizontal Amount , Quantia Horizontal Horizontal Array , Matriz Horizontal Horizontal Blur , Desfoque Horizontal Horizontal Length , Comprimento Horizontal Horizontal Size (%) , Tamanho horizontal (%) Horizontal Stripes , Listras Horizontais Horizontal Tiles , Ladrilhos Horizontais Horizontal Warp Only , Apenas Warp Horizontal Horror Blue , Horror Azul Hot , Quente Hot (256) , Quente (256) Hough Sketch , Esboço de Hough Hough Transform , Transformação Hough House , Casa Householder , Proprietário da casa HSI [all] , HSI [todos] HSI [Intensity] , HSI [Intensidade] HSL [all] , HSL [todos] HSL Adjustment , Ajuste de HSL HSV [all] , HSV [todos] HSV [Hue] , HSV [Tonalidade] HSV [Saturation] , HSV [Saturação] HSV [Value] , HSV [Valor] HSV Select , Selecção HSV Hue , Matiz Hue (%) , Tonalidade (%) Hue Band , Banda de matizes Hue Factor , Factor de Matiz Hue Lighten-Darken , Tonalidade Lighten-Darken Hue Max (%) , Matiz Max (%) Hue Min (%) , Tonalidade Min (%) Hue Offset , Offset de matizes Hue Range , Gama de matizes Hue Shift , Turno de Tonalidade Hue Smoothness , Suavidade da matiz Human 2 , Humano 2 Human 1 , Humano 1 Human 2 , Humano 2 Hybrid Median - Medium Speed Softest Output , Mediana Híbrida - Saída mais suave de velocidade média Hypnosis , Hipnose Iain Noise Reduction 2019 , Redução de Ruído Iain 2019 Iain's Fast Denoise , Iain's Denoise rápido Identity , Identidade Ignore , Ignorar Ignore Current Aspect , Ignorar Aspecto da Corrente Illuminate 2D Shape , Iluminar a forma 2D Illumination , Iluminação Illustration Look , Ilustração Look Image , Imagem Image + Background , Imagem + Fundo Image + Colors (2 Layers) , Imagem + Cores (2 Camadas) Image + Colors (Multi-Layers) , Imagem + Cores (Multi-Layers) Image Contour Dimensions , Dimensões do contorno da imagem Image Smoothness , Suavidade de imagem Image to Grab Color from (.Png) , Imagem para Agarrar Cor de (.Png) Image Weight , Peso da imagem Import Data , Dados de importação Import RGB-565 File , Importar ficheiro RGB-565 Impulses 5x5 , Impulsos 5x5 Impulses 7x7 , Impulsos 7x7 Impulses 9x9 , Impulsos 9x9 Include Opacity Layer , Incluir camada de opacidade Increasing , Aumentando Indoor Blue , Azul Interior Influence of Color Samples (%) , Influência das amostras de cor (%) Information , Informação Init. Resolution , Init. Resolução Init. Type , Init. Tipo Init. With High Gradients Only , Init. Apenas com Gradientes Elevados Initial Density , Densidade inicial Initialization , Inicialização Ink Wash , Lavagem da tinta Inner , Interior Inner Fading , Desvanecimento interno Inner Length , Comprimento interior Inner Radius , Raio interior Inner Radius (%) , Raio interior (%) Inner Shade , Sombra interior Inpaint [Holes] , Pintura [Buracos] Inpaint [Morphological] , Inpaint [Morfológico] Inpaint [Multi-Scale] , Inpaint [Multi-escala] Inpaint [Patch-Based] , Inpaint [Baseado em Patch] Input , Entrada Input Folder , Pasta de entrada Input Frame Files Name , Nome do ficheiro da moldura de entrada Input Guide Color , Cor do guia de entrada Input Layers , Camadas de entrada Input Transparency , Transparência de entrada Input Type , Tipo de entrada Insert New CLUT Layer , Inserir nova camada CLUT Inside , Dentro Inside Color , Cor interior Instant [Consumer] (54) , Instantâneo [Consumidor] (54) Instant [Pro] (68) , Instantâneo [Pro] (68) Intensity , Intensidade Intensity of Purple Fringe , Intensidade da franja púrpura Interlace Horizontal , Interlaçar Horizontal Interlace Vertical , Vertical Interlace Interpolate , Interpolar Interpolation , Interpolação Interpolation Type , Tipo de Interpolação Inverse , Inversa Inverse Depth Map , Mapa de Profundidade Inversa Inverse Radius , Raio Inverso Inverse Transform , Transformação Inversa Inversions , Inversões Invert Background / Foreground , Inverter Antecedentes / Primeiro plano Invert Blur , Inverter o Borrão Invert Canvas Colors , Inverter Cores de Lona Invert Colors , Inverter as cores Invert Image Colors , Inverter as cores da imagem Invert Luminance , Luminância de Inverter Invert Mask , Máscara Invertida Iteration , Iteração Iterations , Iterações Japanese Maple Leaf , Folha de Bordo Japonesa Jet , Jacto Jet (256) , Jacto (256) JPEG Artefacts , Artefactos JPEG JPEG Smooth , JPEG Liso Just Peachy , Só Peachy K-Factor , Factor K K-Tone Vintage Kodachrome , K-Tom Vintage Kodachrome Kaleidoscope [Blended] , Caleidoscópio [Mistura] Kaleidoscope [Polar] , Caleidoscópio [Polar] Kaleidoscope [Symmetry] , Caleidoscópio [Simetria] Kandinsky: Squares with Concentric Circles , Kandinsky: Quadrados com Círculos Concêntricos Kandinsky: Yellow-Red-Blue , Kandinsky: Amarelo-Vermelho-azul Keep , Guarde Keep Aspect Ratio , Manter a relação de aspecto Keep Base Layer as Input Background , Manter a camada base como fundo de entrada Keep Borders Square , Manter a Praça das Fronteiras Keep Color Channels , Manter Canais de Cor Keep Colors , Manter as cores Keep Detail , Manter Detalhe Keep Detail Layer Separate , Manter a Camada de Detalhe Separada Keep Iterations as Different Layers , Manter as Iterações como Camadas Diferentes Keep Layers Separate , Manter as camadas separadas Keep Original Image Size , Manter o tamanho original da imagem Keep Original Layer , Manter a Camada Original Keep Tiles Square , Manter o quadrado dos azulejos Keep Transparency in Output , Manter a Transparência na Produção Kernel Multiplier , Multiplicador de Núcleo Kernel Type , Tipo de grão Key Factor , Factor chave Key Frame Rate , Taxa do Quadro-Chave Key Shift , Mudança de Chave Key Smoothness , Suavidade da chave Keypoint Influence (%) , Influência do ponto-chave (%) Kitaoka Spin Illusion , Ilusão de Kitaoka Spin Klee: Death and Fire , Klee: Morte e Fogo Klee: In the Style of Kairouan , Klee: No Estilo de Kairouan Klee: Oriental Pleasure Garden Anagoria , Klee: Jardim do Prazer Oriental Anagoria Klee: Polyphony 2 , Klee: Polifonia 2 Klee: Red Waistcoat , Klee: Casaco de cintura vermelho Klimt: The Kiss , Klimt: O Beijo Kodak Portra 800 ++ , Kodak Portra 800 +++ Kuwahara on Painting , Kuwahara sobre Pintura L1-Norm , L1-Norma L2-Norm , L2-Norma Lab , Laboratório Lab (Chroma Only) , Laboratório (Apenas Chroma) Lab (Distinct) , Laboratório (Distinto) Lab (Luma Only) , Laboratório (apenas Luma) Lab (Luma/Chroma) , Laboratório (Luma/Chroma) Lab (Mixed) , Laboratório (Misto) Lab [a-Chrominance] , Laboratório [a-Crominância] Lab [ab-Chrominances] , Laboratório [ab-Chrominances] Lab [all] , Laboratório [todos] Lab [b-Chrominance] , Laboratório [b-Crominância] Lab [Lightness] , Laboratório [Lightness] Landscape , Paisagem Landscape-10 , Paisagem-10 Landscape-2 , Paisagem-2 Landscape-3 , Paisagem-3 Landscape-4 , Paisagem-4 Landscape-5 , Paisagem-5 Landscape-6 , Paisagem-6 Landscape-7 , Paisagem-7 Landscape-8 , Paisagem-8 Landscape-9 , Paisagem-9 Laplacian , Laplaciano Large , Grande Large Noise , Grande Ruído Last , Último Last Frame , Último quadro Late Afternoon Wanderlust , Desejo de viajar ao fim da tarde Late Sunset , Pôr-do-sol tardio Lava Lamp , Lâmpada de Lava Layer , Camada Layer Processing , Processamento de camadas Layers to Tiles , Camadas para Azulejos Lch [all] , Lch [todos] Lch [c-Chrominance] , Lch [c-Crominância] Lch [ch-Chrominances] , Lch [ch-Crominâncias] Leaf , Folha Leaf Color , Cor da Folha Leaf Opacity (%) , Opacidade das Folhas (%) Leak Type , Tipo de Fuga Left , Esquerda Left Foreground , Primeiro plano à esquerda Left / Right Blur (%) , Desfoque Esquerda / Direita (%) Left and Right Background , Fundo esquerdo e direito Left and Right Foreground , Primeiro plano à esquerda e à direita Left and Right Image Streams , Fluxos de imagem à esquerda e à direita Left Diagonal Foreground , Primeiro plano diagonal esquerdo Left Foreground , Primeiro plano à esquerda Left Position , Posição esquerda Left Side Orientation , Orientação do lado esquerdo Left Slope , Inclinação Esquerda Left Stream Only , Apenas o fluxo de esquerda Length , Comprimento Lenticular Density LPI , Densidade Lenticular LPI Lenticular Orientation , Orientação Lenticular Lenticular Print , Impressão lenticular Level , Nível Level Frequency , Nível Frequência Levels , Níveis Life Giving Tree , Árvore que dá vida Lifestyle & Commercial-1 , Estilo de Vida e Comercial-1 Lifestyle & Commercial-10 , Estilo de Vida e Comercial-10 Lifestyle & Commercial-2 , Estilo de Vida e Comercial-2 Lifestyle & Commercial-3 , Estilo de Vida e Comercial-3 Lifestyle & Commercial-4 , Estilo de Vida e Comercial-4 Lifestyle & Commercial-5 , Estilo de Vida e Comercial-5 Lifestyle & Commercial-6 , Estilo de Vida e Comercial-6 Lifestyle & Commercial-7 , Estilo de Vida e Comercial-7 Lifestyle & Commercial-8 , Estilo de Vida e Comercial-8 Lifestyle & Commercial-9 , Estilo de Vida e Comercial-9 Light , Luz Light (blown) , Luz (soprada) Light Angle , Ângulo de luz Light Color , Cor clara Light Direction , Direcção da Luz Light Effect , Efeito de Luz Light Glow , Brilho Leve Light Grey , Cinzento Claro Light Leaks , Fugas de luz Light Motive , Motivo Ligeiro Light Patch , Patch de luz Light Rays , Raios de luz Light Smoothness , Suavidade leve Light Strength , Força da luz Light Type , Tipo leve Lighten , Iluminar Lighten Edges , Iluminar Bordos Lighter , Isqueiro Lighting , Iluminação Lighting Angle , Ângulo de Iluminação Lightness , Ligeireza Lightness (%) , Ligeireza (%) Lightness Factor , Factor de leveza Lightness Level , Nível de Leveza Lightness Max (%) , Leveza Máxima (%) Lightness Min (%) , Ligeireza Min (%) Lightness Shift , Mudança de leveza Lightness Smoothness , Aligeiramento Suavidade Lightning , Relâmpago Lighty Smooth , Ligeiramente Suave Limit Hue Range , Limitar o alcance da tonalidade Line , Linha Line Opacity , Opacidade da linha Line Precision , Precisão da linha Linear Burn , Queimadura Linear Linear Light , Luz Linear Linear RGB , RGB Linear Linear RGB [All] , RGB Linear [Todos] Linear RGB [Blue] , RGB Linear [Azul] Linear RGB [Green] , Linear RGB [Verde] Linear RGB [Red] , RGB Linear [Vermelho] Linearity , Linearidade Lineart + Color Spots , Lineart + Spots de cor Lineart + Color Spots + Extrapolated Colors , Lineart + Spots de cor + Cores Extrapoladas Lineart + Colors , Lineart + Cores Lineart + Extrapolated Colors , Lineart + Cores Extrapoladas Lines , Linhas Lines (256) , Linhas (256) Lion , Leão Lissajous [Animated] , Lissajous [Animado] Lissajous Spiral , Lissajous Espiral Little , Pequeno Little Blue , Pequeno Azul Little Cyan , Pequeno Ciano Little Green , Pequeno Verde Little Key , Chavezinha Little Magenta , Pequena Magenta Little Red , Vermelho Pequeno Little Yellow , Pequeno Amarelo LN Amplititude , LN Ampliação LN Average-Smoothness , LN Avanço - Medianeira LN Size , Tamanho LN Local Normalisation , Normalização local Local Contrast , Contraste local Local Contrast Effect , Efeito de Contraste Local Local Contrast Enhance , Realce do contraste local Local Contrast Enhancement , Melhoramento do contraste local Local Contrast Style , Estilo de contraste local Local Detail Enhancer , Melhorador de detalhes local Local Normalization , Normalização Local Local Orientation , Orientação local Local Processing , Processamento local Local Similarity Mask , Máscara de Semelhança Local Local Variance Normalization , Normalização da Variância Local Lock Return Scaling to Source Layer , Escala de Retorno de Bloqueio à Camada de Origem Lock Source , Fonte de Bloqueio Lock Uniform Sampling , Amostragem Uniforme de Fechaduras Logarithmic Distortion , Distorção logarítmica Logarithmic Distortion Axis Combination for X-Axis , Combinação de Eixo de Distorção Logarítmica para eixo X Logarithmic Distortion Axis Combination for Y-Axis , Combinação de Eixo de Distorção Logarítmica para Eixo Y Logarithmic Distortion X-Axis Direction , Distorção logarítmica Direcção do eixo X Logarithmic Distortion Y-Axis Direction , Distorção logarítmica Direcção eixo Y Lomography Redscale 100 , Lomografia à escala vermelha 100 Lookup , Pesquisa Lookup Factor , Factor de pesquisa Lookup Size , Tamanho da pesquisa Loop Method , Método Loop Low , Baixo Low Bias , Baixo Bias Low Contrast Blue , Azul Baixo Contraste Low Frequency , Baixa frequência Low Frequency Layer , Camada de Baixa Frequência Low Key , Chave Baixa Low Key 01 , Chave Baixa 01 Low Scale , Escala baixa Low Value , Baixo valor Lower Layer Is the Bottom Layer for All Blends , A camada inferior é a camada inferior para todas as misturas Lower Mask Threshold (%) , Limiar Inferior da Máscara (%) Lower Side Orientation , Orientação lateral inferior Lowercase Letters , Cartas em letras minúsculas Lowlights Crossover Point , Ponto de Cruzamento de Luzes Baixas Lowres CLUT , CLUT Lowres Luma Noise , Ruído de Luma Luminance , Luminância Luminance Factor , Factor Luminância Luminance Level , Nível de luminosidade Luminance Only , Apenas Luminância Luminance Only (Lab) , Apenas Luminância (Laboratório) Luminance Only (YCbCr) , Apenas Luminância (YCbCr) Luminance Shift , Deslocamento da luminância Luminance Smoothness , Luminância Suavidade Luminosity from Color , Luminosidade da Cor Luminosity Type , Tipo de Luminosidade Lush Green Summer , Verão Verde exuberante LUTs Pack , Pacote LUTs Lylejk's Painting , Pintura Lylejk's Magenta Coffee , Café Magenta Magenta Day , Dia de Magenta Magenta Day 01 , Magenta Dia 01 Magenta Dream , Sonho Magenta Magenta Factor , Fator Magenta Magenta Shift , Turno Magenta Magenta Smoothness , Magenta suavidade Magenta Yellow , Amarelo Magenta Magic Details , Detalhes Mágicos Magnitude / Phase , Magnitude / Fase Mail , Correio Make Hue Depends on Region Size , Fazer a matiz depender do tamanho da região Make Seamless [Diffusion] , Make Seamless [Difusão] Make Seamless [Patch-Based] , Make Seamless [Baseado em Patch] Make Squiggly , Fazer Squiggly Make Up , Maquilhagem Mandelbrot - Julia Sets , Mandelbrot - Conjuntos Julia Mandelbrot Explorer , Explorador Mandelbrot Manual Controls , Controlos manuais Map , Mapa Map Tones , Tons do Mapa Mapping , Mapeamento Marble , Mármore Margin (%) , Margem (%) Mascot Image , Imagem de Mascote Masculine , Masculino Mask , Máscara Mask + Background , Máscara + Fundo Mask as Bottom Layer , Máscara como Camada de Fundo Mask By , Máscara por Mask Color , Cor da máscara Mask Contrast , Contraste de máscara Mask Creator , Criador da Máscara Mask Dilation , Dilatação da máscara Mask Size , Tamanho da máscara Mask Smoothness (%) , Suavidade da máscara (%) Mask Type , Tipo de Máscara Masked Image , Imagem mascarada Masking , Mascaramento Match Colors With , Corresponder as cores com Matching Precision (Smaller Is Faster) , Correspondência de precisão (Mais pequeno é mais rápido) Math Symbols , Símbolos Matemáticos Matrix , Matriz Max Angle , Ângulo máximo Max Angle Deviation (deg) , Desvio angular máximo (deg) Max Area , Área máxima Max Curve , Curva Máxima Max Cut (%) , Corte máximo (%) Max Iterations , Iterações máximas Max Length (%) , Comprimento máximo (%) Max Offset (%) , Deslocamento máximo (%) Max Radius , Raio Máximo Max Threshold , Limiar Máximo Maximal Area , Área Máxima Maximal Color Saturation , Saturação Máxima de Cor Maximal Highlights , Destaques Máximos Maximal Radius , Raio Maximal Maximal Seams per Iteration (%) , Máximas Costuras por Iteração (%) Maximal Size , Tamanho Máximo Maximal Value , Valor Máximo Maximum , Máximo Maximum Dimension , Dimensão máxima Maximum Image Size , Tamanho máximo de imagem Maximum Number of Image Colors , Número máximo de cores de imagem Maximum Number of Output Layers , Número máximo de camadas de saída Maximum Red:Blue Ratio in the Fringe , Relação máxima vermelho:azul na franja Maximum Saturation , Saturação Máxima Maximum Size Factor , Factor de Tamanho Máximo Maximum Value , Valor Máximo Maze , Labirinto Maze Type , Tipo de labirinto Mean Color , Cor média Mean Curvature , Curvatura média Median (beware: Memory-Consuming!) , Mediana (cuidado: Consumo de memória!) Median Radius , Raio Mediano Medium , Médio Medium 3 , Médio 3 Medium Details Smoothness , Suavidade de detalhes médios Medium Details Threshold , Limiar de Média Pormenor Medium Frequency Layer , Camada de Média Frequência Medium Scale (Original) , Escala média (Original) Medium Scale (Smoothed) , Escala média (suavizada) Memories , Memórias Merge Brightness / Colors , Fundir Brilho / Cores Merge Layers? , Fusão de camadas? Merging Mode , Modo de fusão Merging Option , Opção de fusão Merging Steps , Passos de fusão Mess with Bits , Meter-se com Bits Metallic Look , Olhar metálico Method , Método Metric , Métrica Micro/macro Details Adjusted , Micro/macro Detalhes ajustados Mid , Em meados de Mid Grey , Cinzento Médio Mid Noise , Ruído médio Mid Offset , Meio de Compensação Mid Tone Contrast , Contraste de Tom Médio Mid-Dark Grey , Cinzento-escuro médio Mid-Light Grey , Cinzento Médio-Luz Mid-Tones , Meio-tons Middle Grey , Cinzento Médio Middle Scale , Escala média Midpoint , Ponto médio Midtones Brightness , Brilho de meio-tons Midtones Color Intensity , Intensidade de cor dos meios tons Mighty Details , Detalhes Poderosos Min Angle Deviation (deg) , Desvio angular mínimo (deg) Min Area % , Área Min. Min Cut (%) , Corte Mínimo (%) Min Length (%) , Comprimento Mínimo (%) Min Radius , Raio Menos Min Threshold , Limiar Mínimo Mineral Mosaic , Mosaico Mineral Minesweeper , Varredor de Minas Minimal Area , Área Mínima Minimal Area (%) , Área Mínima (%) Minimal Color Intensity , Intensidade mínima da cor Minimal Highlights , Destaques Mínimos Minimal Path , Caminho Mínimo Minimal Radius , Raio Minimal Minimal Region Area , Área de Região Mínima Minimal Scale (%) , Escala Mínima (%) Minimal Shape Area , Área de Forma Mínima Minimal Size , Tamanho Mínimo Minimal Size (%) , Tamanho Mínimo (%) Minimal Stroke Length , Comprimento Mínimo do Acidente Vascular Cerebral Minimal Value , Valor Mínimo Minimalist Caffeination , Cafeinação Minimalista Minimum , Mínimo Minimum Brightness , Brilho Mínimo Minimum Red:Blue Ratio in the Fringe , Relação Mínima Vermelha:Azul na Fringe Mirror , Espelho Mirror Effect , Efeito Espelho Mirror X , Espelho X Mirror Y , Espelho Y Mix , Misture Mixed Mode , Modo misto Mixer [CMYK] , Misturador [CMYK] Mixer [HSV] , Misturador [HSV] Mixer [Lab] , Misturador [Laboratório] Mixer [PCA] , Misturador [PCA] Mixer [RGB] , Misturador [RGB] Mixer [YCbCr] , Misturador [YCbCr] Mixer Mode , Modo Mixer Mixer Style , Estilo Mixer Mode , Modo Modern Film , Filme moderno Modulo Value , Valor Modulo Moiré Animation , Moiré Animação Moire Removal , Remoção do moiré Moire Removal Method , Método de remoção do moiré Mondrian: Composition in Red-Yellow-Blue , Mondrian: Composição em vermelho-amarelo-amarelo-azul Mondrian: Evening; Red Tree , Mondrian: Noite; Árvore Vermelha Mondrian: Gray Tree , Mondrian: Árvore cinzenta Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore ao anoitecer Monet: Water-Lily Pond , Monet: Lírio-Lírio de Água Monet: Wheatstacks - End of Summer , Monet: Wheatstacks - Fim do Verão Monkey , Macaco Mono Tinted , Mono Colorido Mono-Directional , Mono-direccional Monochrome , Monocromático Monochrome 1 , Monocromo 1 Monochrome 2 , Monocromo 2 Montage , Montagem Montage Type , Tipo de Montagem Moonlight , Luz da Lua Moonlight 01 , Luz da Lua 01 Moonrise , Nascer da Lua Morning 6 , Manhã 6 Morph [Interactive] , Morfo [Interactivo] Morph Layers , Camadas de morfo Morphological - Fastest Sharpest Output , Morfológico - Saída mais rápida e afiada Morphological Closing , Encerramento Morfológico Morphological Filter , Filtro morfológico Morphology Painting , Pintura Morfológica Morphology Strength , Força morfológica Mosaic , Mosaico Most , A maioria Mostly Blue , Principalmente Azul Motion Analyzer , Analisador de movimento Motion-Compensated , Movimento-Compensado Much , Muito Much Blue , Muito Azul Much Green , Muito Verde Much Red , Muito Vermelho Multi-Layer Etch , Etch Multi-Layer Multiple Colored Shapes Over Transp. BG , Formas de múltiplas cores sobre o transporte. BG Multiple Layers , Múltiplas camadas Multiplier , Multiplicador Multiply , Multiplicar Multiscale Operator , Operador Multi-escala Munch: The Scream , Munch: O Grito Mute Shift , Deslocamento do Mudo Muted Fade , Desbotamento mudo Mystic Purple Sunset , Pôr-do-sol Místico Púrpura Name , Nome Natural (vivid) , Natural (vívido) Nature & Wildlife-1 , Natureza & Vida Selvagem - 1 Nature & Wildlife-10 , Natureza & Vida Selvagem - 10 Nature & Wildlife-2 , Natureza & Vida Selvagem - 2 Nature & Wildlife-3 , Natureza & Vida Selvagem - 3 Nature & Wildlife-4 , Natureza & Vida Selvagem - 4 Nature & Wildlife-5 , Natureza & Vida Selvagem - 5 Nature & Wildlife-6 , Natureza & Vida Selvagem - 6 Nature & Wildlife-7 , Natureza & Vida Selvagem - 7 Nature & Wildlife-8 , Natureza & Vida Selvagem - 8 Nature & Wildlife-9 , Natureza & Vida Selvagem - 9 Nb Circles Surrounding , Nb Círculos à volta Near Black , Perto de Preto Nearest , O mais próximo Nearest Neighbor , Vizinho mais próximo Neat Merge , Fusão pura Nebulous , Nebuloso Negate , Negar Negation , Negação Negative , Negativo Negative [Color] (13) , Negativo [Cor] (13) Negative [New] (39) , Negativo [Novo] (39) Negative [Old] (44) , Negativo [Antigo] (44) Negative Color Abstraction , Abstracção de Cor Negativa Negative Colors , Cores Negativas Negative Effect , Efeito Negativo Neighborhood Size (%) , Tamanho do bairro (%) Neighborhood Smoothness , Suavidade do bairro Nemesis , Némesis Neon Lightning , Relâmpagos de néon Neutral Color , Cor Neutra Neutral Teal Orange , Laranja Neutra Teal Neutral Warm Fade , Desbotamento Neutro do calor New Curves [Interactive] , Novas Curvas [Interactivo] Newspaper , Jornais Night 01 , Noite 01 Night Blade 4 , Lâmina nocturna 4 Night From Day , Noite de dia Night King 141 , Rei da Noite 141 Night Spy , Espionagem Nocturna Nine Layers , Nove camadas No Masking , Sem mascaramento No Recovery , Sem recuperação No Rescaling , Sem redimensionamento No Transparency , Sem Transparência Noise , Ruído Noise [Additive] , Ruído [Aditivo] Noise [Perlin] , Ruído [Perlin] Noise [Spread] , Ruído [Espalhar] Noise A , Ruído A Noise B , Ruído B Noise C , Ruído C Noise D , Ruído D Noise Level , Nível de Ruído Noise Scale , Balança de Ruído Noise Type , Tipo de Ruído Non / No , Não / Não Non-Linearity , Não-Linearidade Non-Rigid , Não-Rígido None , Nenhum None (Allows Multi-Layers) , Nenhuma (Permite Multi-Layers) Norm Type , Tipo de norma Normal Map , Mapa normal Normal Output , Saída normal Normalization , Normalização Normalize , Normalizar Normalize Brightness , Normalizar a luminosidade Normalize Colors , Normalizar as cores Normalize Illumination , Normalizar a Iluminação Normalize Input , Normalizar a Entrada Normalize Luma , Normalizar Luma Normalize Scales , Normalizar as escalas Nostalgia Honey , Mel da Nostalgia Nostalgic , Nostalgico Nothing , Nada Number , Número Number of Added Frames , Número de estruturas adicionadas Number of Angles , Número de ângulos Number of Clusters , Número de Aglomerados Number of Colors , Número de Cores Number of Frames , Número de Molduras Number of Inter-Frames , Número de Inter-Frames Number of Iterations per Scale , Número de Iterações por Escala Number of Key-Frames , Número de Porta-Chaves Number of Levels , Número de níveis Number of Matches (Coarsest) , Número de Fósforos (mais grosseiros) Number of Matches (Finest) , Número de Fósforos (Finest) Number of Orientations , Número de Orientações Number Of Rays , Número de Raios Number of Scales , Número de balanças Number of Sizes , Número de Tamanhos Number of Streaks , Número de Ruas Number of Teeth , Número de Dentes Number of Tones , Número de Tons Object Animation , Animação de objectos Object Ratio , Relação de objectos Object Tolerance , Tolerância a objectos Octagon , Octógono Octagonal , Octogonal Octogon , Octogão Oddness (%) , Estranheza (%) Off , Desligado Offset (%) , Compensação (%) Offset Angle Rays Layer 1 , Camada 1 de Raios de Ângulo de Compensação Offset Angle Rays Layer 2 , Camada 2 de Raios de Ângulo de Compensação Old Method - Slowest , Método antigo - mais lento Old Photograph , Fotografia antiga Old West , Velho Oeste Old-Movie Stripes , Listras de filmes antigos Oldschool 8bits , 8bits da velha guarda ON1 Photography (90) , ON1 Fotografia (90) Once Upon a Time , Era uma vez One Layer , Uma camada One Layer (Horizontal) , Uma camada (Horizontal) One Layer (Vertical) , Uma camada (Vertical) One Layer per Single Color , Uma camada por cor única One Layer per Single Region , Uma camada por região One Thread , Um fio Only Leafs , Apenas Folhas Only Red , Apenas Vermelho Only Red and Blue , Apenas Vermelho e Azul Op Art , Op Arte Opacity , Opacidade Opacity (%) , Opacidade (%) Opacity as Heightmap , Opacidade como Mapa de Altura Opacity Contours , Contornos de opacidade Opacity Factor , Factor de Opacidade Opacity Gain , Ganho de Opacidade Opacity Gamma , Opacidade Gama Opacity Threshold (%) , Limiar de Opacidade (%) Opaque Pixels , Pixels opacos Opaque Regions on Top Layer , Regiões opacas na camada superior Opaque Skin , Pele opaca Open Interactive Preview , Pré-visualização interactiva aberta Opening , Abertura Operation Yellow , Operação Amarelo Operator , Operador Opposing , Em oposição a Optimized Lateral Inhibition , Inibição lateral optimizada Orange Tone , Tom de Laranja Orange Underexposed , Laranja Subexposta Oranges , Laranjas Order , Encomenda Order By , Encomendar por Orientation , Orientação Orientation Coherence , Coerência da orientação Orientation Only , Apenas orientação Orientations , Orientações Original - (Opening + Closing)/2 , Original - (Abertura + Encerramento)/2 Original - Erosion , Original - Erosão Original - Opening , Original - Abertura Orthogonal Radius , Raio Ortogonal Others (69) , Outros (69) Ouline Color , Cor Oulina Outer , Exterior Outer Fading , Desvanecimento exterior Outer Length , Comprimento exterior Outer Radius , Raio exterior Outline , Esboço Outline (%) , Esboço (%) Outline Color , Cor do esboço Outline Contrast , Contraste Esboço Outline Opacity , Esboço Opacidade Outline Size , Tamanho do esboço Outline Smoothness , Esboço Suavidade Outline Thickness , Esboço Espessura Outlined , Em linhas gerais Output , Saída Output as Files , Saída como Ficheiros Output as Frames , Saída como Armações Output as Multiple Layers , Saída como Múltiplas Camadas Output as Separate Layers , Saída como Camadas Separadas Output Ascii File , Ficheiro de saída Ascii Output Chroma NR , Chroma de saída NR Output CLUT , Saída CLUT Output CLUT Resolution , Resolução CLUT de saída Output Coordinates File , Ficheiro de Coordenadas de Saída Output Corresponding CLUT , Saída Correspondente CLUT Output Directory , Directório de saída Output Each Piece on a Different Layer , Saída de cada peça numa camada diferente Output Filename , Nome do ficheiro de saída Output Files , Ficheiros de saída Output Folder , Pasta de saída Output Format , Formato de saída Output Frames , Quadros de saída Output Height , Altura de saída Output HTML File , Arquivo HTML de saída Output Layers , Camadas de saída Output Mode , Modo de saída Output Multiple Layers , Saída Múltiplas camadas Output Preset as a HaldCLUT Layer , Pré-definição de saída como camada HaldCLUT Output Region Delimiters , Delimitadores da Região de Saída Output Saturation , Saturação de saída Output Sharpening , Afiação de saída Output Stroke Layer On , Camada de saída do AVC ligado Output to Folder , Saída para pasta Output Type , Tipo de saída Output Width , Largura de saída Outside , Fora Outside Color , Cor exterior Outward , Para o exterior Overall Blur , Desfoque geral Overall Contrast , Contraste global Overall Lightness , Leveza geral Overlap (%) , Sobreposição (%) Overlay , Sobreposição Oversample , Excesso de amostra Overshoot , Ultrapassagem Pack , Pacote Pack Sprites , Pacote de Sprites Padding (px) , Acolchoamento (px) Paint , Tinta Paint Daub , Pintar Daub Paint Effect , Efeito de Pintura Paint Splat , Borrão de tinta Painter's Edge Protection Flow , Fluxo de protecção do bordo do pintor Painter's Smoothness , A suavidade do pintor Painter's Touch Sharpness , A nitidez do toque do pintor Painting , Pintura Painting Opacity , Opacidade de Pintura Paintstroke , Pincelada Paladin 1875 , Paladino 1875 Paper Texture , Textura de papel Parallel Processing , Processamento paralelo Parrots , Papagaios Passing By , Passando por Pastell Art , Arte em Pastel Patch Measure , Medida do Patch Patch Size , Tamanho do Patch Patch Size for Analysis , Tamanho do Patch para Análise Patch Size for Synthesis , Tamanho do Patch para Síntese Patch Size for Synthesis (Final) , Tamanho do Patch para Síntese (Final) Patch Smoothness , Patch Suavidade Patch Variance , Variação do Patch Pattern , Padrão Pattern Angle , Ângulo do padrão Pattern Height , Altura do Padrão Pattern Type , Tipo de Padrão Pattern Variation 1 , Variação do Padrão 1 Pattern Variation 2 , Variação do Padrão 2 Pattern Variation 3 , Variação do Padrão 3 Pattern Weight , Peso Padrão Pattern Width , Largura do padrão Paw , Pata PCA Transfer , Transferência PCA Pea Soup , Sopa de ervilha Pen Drawing , Desenho de canetas Penalize Patch Repetitions , Penalizar as repetições de Patch Pencil , Lápis Pencil Amplitude , Amplitude do lápis Pencil Portrait , Retrato a lápis Pencil Size , Tamanho do lápis Pencil Smoother Edge Protection , Protecção da borda do lápis mais liso Pencil Smoother Sharpness , Lápis mais suave afiado Pencil Smoother Smoothness , Lápis mais suave Suavidade Pencil Type , Tipo de lápis Pencils , Lápis Pentagon , Pentágono Percent of Image Half-Hypotenuse (%) , Porcentagem de imagem Meia-hipotenusa (%) Periodic , Periódico Periodic Dots , Pontos Periódicos Periodicity , Periodicidade Perserve Luminance , Luminância de Perserva Perspective , Perspectiva Petals , Pétalas Phase , Fase Phone , Telefone PhotoComix Preset , Pré-definição PhotoComix Photoillustration , Fotoilustração Picasso: Seated Woman , Picasso: Mulher sentada Picasso: The Reservoir - Horta De Ebro , Picasso: O Reservatório - Horta De Ebro Piece Complexity , Complexidade da peça Piece Size (px) , Tamanho da peça (px) Pin Light , Luz de alfinete Pink Fade , Desbotamento cor-de-rosa Pixel Values , Valores Pixel Placement , Colocação Plaid , Placa Plane , Avião Plasma Effect , Efeito Plasma Plot Type , Tipo de Lote Point #0 , Ponto #0 Point #1 , Ponto #1 Point #2 , Ponto #2 Point #3 , Ponto #3 Point 1 , Ponto 1 Point 2 , Ponto 2 Points , Pontos Polar Transform , Transformação polar Polaroid 665 Negative , Polaroid 665 Negativo Polaroid 665 Negative + , Polaroid 665 Negativo + Polaroid 665 Negative - , Polaroid 665 Negativo - Polaroid 665 Negative HC , Polaroid 665 HC Negativo Polaroid 669 +++ , Polaroid 669 ++++ Polaroid 669 Cold , Polaroid 669 Frio Polaroid 669 Cold + , Polaroid 669 Frio + Polaroid 690 Cold , Polaroid 690 Frio Polaroid PX-100UV+ Cold , Polaroid PX-100UV+ Frio Polaroid PX-100UV+ Cold + , Polaroid PX-100UV+ Frio + Polaroid PX-100UV+ Cold ++ , Polaroid PX-100UV+ Frio ++ Polaroid PX-100UV+ Cold +++ , Polaroid PX-100UV+ Frio ++++ Polaroid PX-100UV+ Warm , Polaroid PX-100UV+ Quente Polaroid PX-100UV+ Warm + , Polaroid PX-100UV+ Quente + Polaroid PX-100UV+ Warm ++ , Polaroid PX-100UV+ Quente ++ Polaroid PX-100UV+ Warm +++ , Polaroid PX-100UV+ Quente ++++ Polaroid PX-100UV+ Warm - , Polaroid PX-100UV+ Quente - Polaroid PX-680 Cold , Polaroid PX-680 Frio Polaroid PX-680 Warm + , Polaroid PX-680 Quente + Polaroid PX-680 Warm ++ , Polaroid PX-680 Quente ++ Polaroid PX-70 +++ , Polaroid PX-70 ++++ Polaroid PX-70 Warm + , Polaroid PX-70 Quente + Polaroid Time Zero (Expired) , Polaroid Time Zero (Expirado) Polaroid Time Zero (Expired) + , Polaroid Time Zero (Expirado) + Polaroid Time Zero (Expired) ++ , Polaroid Time Zero (Expirado) ++ Polaroid Time Zero (Expired) - , Polaroid Time Zero (Expirado) - Polaroid Time Zero (Expired) -- , Polaroid Time Zero (Expirado) -- Polaroid Time Zero (Expired) --- , Polaroid Time Zero (Expirado) --- Polaroid Time Zero (Expired) Cold , Polaroid Time Zero (Expirado) Frio Polaroid Time Zero (Expired) Cold - , Polaroid Time Zero (Expirado) Cold - Polaroid Time Zero (Expired) Cold -- , Polaroid Time Zero (Expirado) Cold -- Polaroid Time Zero (Expired) Cold --- , Polaroid Time Zero (Expirado) Cold --- Pole Lat , Pólo Lat Pole Long , Pólo Longo Pole Rotation , Rotação do Pólo Polka Dots , Pontos de Polka Pollock: Convergence , Pollock: Convergência Pollock: Summertime Number 9A , Pollock: Verão Número 9A Polygonize [Delaunay] , Poligonizar [Delaunay] Polygonize [Energy] , Poligonizar [Energia] Pop Shadows , Sombras Pop Portrait , Retrato Portrait Retouching , Retoque de Retratos Portrait-1 , Retrato-1 Portrait-2 , Retrato-2 Portrait-3 , Retrato-3 Portrait-4 , Retrato-4 Portrait-5 , Retrato-5 Portrait-6 , Retrato-6 Portrait-7 , Retrato-7 Portrait-8 , Retrato-8 Portrait-9 , Retrato-9 Portrait0 , Retrato0 Portrait1 , Retrato1 Portrait10 , Retrato10 Portrait2 , Retrato2 Portrait3 , Retrato3 Portrait4 , Retrato4 Portrait5 , Retrato5 Portrait6 , Retrato6 Portrait7 , Retrato7 Portrait8 , Retrato8 Portrait9 , Retrato9 Position , Posição Position X (%) , Posição X (%) Position X Origin (%) , Posição X Origem (%) Position Y (%) , Posição Y (%) Position Y Origin (%) , Posição Y Origem (%) Positive , Positivo Post-Gamma , Pós-Gamma Post-Normalize , Pós-Normalização Post-Process , Pós-Processo Poster Edges , Pôsteres Posterization Antialiasing , Posterização Antialiasing Posterization Level , Nível de Posterização Posterized Dithering , Ditadura Posterizada Power , Energia Pre-Defined , Pré-definido Pre-Defined Colormap , Colormap Pré-Definido Pre-Gamma , Pré-Gamma Pre-Normalize , Pré-Normalizar Pre-Normalize Image , Pré-Normalizar imagem Pre-Process , Pré-Processo Precision , Precisão Precision (%) , Precisão (%) Preliminary Surface Shift , Desvio de superfície preliminar Preliminary X-Axis Scaling , Escala Preliminar do Eixo X Preliminary Y-Axis Scaling , Escala Preliminar do Eixo Y Preprocessor Power , Poder do pré-processador Preprocessor Radius , Raio do pré-processador Preserve Canvas for Post Bump Mapping , Conservar Tela para Cartografia de Bossas Preserve Image Dimension , Preservar a dimensão da imagem Preserve Initial Brightness , Preservar o Brilho Inicial Preset , Predefinição Preview , Pré-visualização Preview All Outputs , Pré-visualização de todas as saídas Preview Bands , Bandas de pré-visualização Preview Brush , Escova de pré-visualização Preview Data , Pré-visualização de dados Preview Detected Shapes , Pré-visualização de Formas Detectadas Preview Frame Selection , Pré-visualização da selecção da moldura Preview Gradient , Pré-visualização Gradiente Preview Grain Alone , Pré-visualização Grão Sozinho Preview Grid , Grelha de pré-visualização Preview Guides , Guias de pré-visualização Preview Mapping , Pré-visualização de mapas Preview Mask , Máscara de pré-visualização Preview Only Shadow , Pré-visualizar apenas Sombra Preview Opacity (%) , Pré-visualização Opacidade (%) Preview Original , Pré-visualização Original Preview Precision , Pré-visualização Precisão Preview Progress (%) , Pré-visualização do progresso (%) Preview Progression While Running , Pré-visualização Progressão Durante a Corrida Preview Ref Point , Ponto de Reflexão Preview Preview Reference Circle , Prever Círculo de Referência Preview Selection , Pré-visualização da selecção Preview Shape , Pré-visualização da forma Preview Shows , Anteprojectos Preview Subsampling , Pré-visualização Subamostragem Preview Time , Tempo de pré-visualização Preview Tones Map , Mapa de Tons de Pré-visualização Preview Type , Tipo de pré-visualização Preview Without Alpha , Pré-visualização sem Alfa Primary Angle , Ângulo primário Primary Color , Cor primária Primary Factor , Factor principal Primary Gamma , Gama primária Primary Radius , Raio primário Primary Shift , Turno primário Primary Twist , Torcida Primária Print Adjustment Marks , Marcas de ajuste de impressão Print Films (12) , Filmes de impressão (12) Print Frame Numbers , Números da moldura de impressão Print Size Unit , Unidade de tamanho de impressão Print Size Width , Largura de tamanho de impressão Privacy Notice , Nota de Privacidade Pro Neg Hi , Pro Neg Olá Probability Map , Mapa de Probabilidade Process As , Processo Como Process by Blocs of Size , Processo por Blocos de Tamanho Process Channels Individually , Canais de Processo Individualmente Process Top Layer Only , Processar apenas a camada superior Process Transparency , Transparência do processo Processing Mode , Modo de processamento Propagation , Propagação Proportion , Proporção Protanomaly , Protanomalia Protect Highlights 01 , Proteger Destaques 01 Prussian Blue , Azul da Prússia Pseudo-Gray Dithering , Pseudo-acinzentado Dithering Purple , Púrpura Purple11 (12) , Púrpura11 (12) Pyramid , Pirâmide Pyramid Processing , Processamento em pirâmide Pythagoras Tree , Árvore Pitágoras Quadratic , Quadrático Quadtree Variations , Variações de Quadtree Quality , Qualidade Quality (%) , Qualidade (%) Quantize Colors , Quanze Colors Quasi-Gaussian , Quasi-Gaussiano Quick , Rápido Quick Copyright , Rápido Copyright Quick Enlarge , Ampliar rapidamente R/B Smoothness (Principal) , R/B Suavidade (Principal) R/B Smoothness (Secondary) , R/B Suavidade (Secundário) Radius (%) , Raio (%) Radius / Angle , Raio / Ângulo Radius [Manual] , Raio [Manual] Radius Cut , Corte de raio Radius Middle Circle , Círculo médio do raio Radius Outer Circle A (>0 W%) (<0 H%) , Raio Círculo Externo A (>0 W%) (<0 H%) Rain & Snow , Chuva e Neve Rainbow , Arco-íris Raindrops , Gotas de chuva Random , Aleatório Random [non-Transparent] , Aleatório [não transparente] Random Angle , Ângulo aleatório Random Color Ellipses , Elipses de Cor Aleatórias Random Colors , Cores aleatórias Random Seed , Semente Aleatória Random Shade Stripes , Listras de Sombreamento Aleatórias Randomized , Randomizado Randomness , Aleatoriedade Range , Gama Ratio , Rácio Raw , Bruto Rays , Raios Rays Colors AB , Raios Cores AB Rays Colors ABC , Raios Cores ABC Rays Colors ABCD , Raios Cores ABCD Rays Colors ABCDE , Raios Cores ABCDE Rays Colors ABCDEF , Raios Cores ABCDEF Rays Colors ABCDEFG , Raios Cores ABCDEFG Rebuild From Similar Blocs , Reconstruir a partir de Blocos semelhantes Recompose , Recompor Reconstruct From Previous Frames , Reconstruir a partir de quadros anteriores Recover , Recuperar Recover Highlights , Recuperar Destaques Recover Shadows , Recuperar sombras Recovery , Recuperação Rectangle , Rectângulo Recursion Depth , Profundidade de Recurssão Recursions , Recursões Recursive Median , Mediana recursiva Red , Vermelho Red - Green - Blue , Vermelho - Verde - Azul Red - Green - Blue - Alpha , Vermelho - Verde - Azul - Alfa Red Afternoon 01 , Tarde Vermelha 01 Red Blue Yellow , Vermelho Azul Amarelo Red Chroma Factor , Factor Croma Vermelho Red Chroma Shift , Turno de croma vermelha Red Chroma Smoothness , Suavidade do Chroma Vermelho Red Chrominance , Crominância Vermelha Red Day 01 , Dia Vermelho 01 Red Dream 01 , Sonho Vermelho 01 Red Factor , Fator Vermelho Red Level , Nível Vermelho Red Rotations , Rotações vermelhas Red Shift , Turno Vermelho Red Smoothness , Suavidade vermelha Red Wavelength , Comprimento de onda vermelho Red-Eye Attenuation , Atenuação do Olho Vermelho Red-Green , VERMELHO-VERDE Reds , Vermelhos Reds Oranges Yellows , Laranjas Vermelhas Amarelas Reduce Halos , Reduzir Halos Reduce Noise , Reduzir o Ruído Reduce RAM , Reduzir a RAM Reduce Redness , Reduzir a Reduza Reeve 38 , Reeveitar 38 Reference , Referência Reference Angle (deg.) , Ângulo de referência (deg.) Reference Color , Cor de referência Reference Colors , Cores de referência Reflect , Reflectir Reflection , Reflexão Refraction , Refracção Regular Grid , Grelha regular Regularity , Regularidade Regularity (%) , Regularidade (%) Regularization , Regularização Regularization (%) , Regularização (%) Regularization Factor , Factor de regularização Regularization Iterations , Iterações de regularização Reject , Rejeitar Rejected Colors , Cores Rejeitadas Rejected Mask , Máscara Rejeitada Relative Block Count , Contagem de blocos relativos Relative Size , Tamanho relativo Relative Warping , Empenos relativos Release Notes , Notas de Lançamento Relief , Alívio Relief Amplitude , Amplitude de Alívio Relief Contrast , Contraste de alívio Relief Light , Luz de alívio Relief Size , Tamanho do alívio Relief Smoothness , Suavidade de alívio Remove Artifacts From Micro/Macro Detail , Remover artefactos do Micro/Macro Detail Remove Hot Pixels , Retirar Pixels Quentes Remove Tile , Remover Telha Render Multiple Frames , Renderização de Quadros Múltiplos Render on Dark Areas , Renderização em Áreas Escuras Render on White Areas , Renderização em Áreas Brancas Render Routine for Wiggle Animations , Rotina de Render para Animações Wiggle Rendering , Renderização Rendering Mode , Modo de rendição Repair Scanned Document , Documento digitalizado de reparação Repeat , Repita Repeat [Memory Consuming!] , Repita [Consumo de Memória!] Repeats , Repete Replace , Substituir Replace (Sharpest) , Substituir (Sharpest) Replace Layer with CLUT , Substituir Layer por CLUT Replace Source by Target , Substituir Fonte por Alvo Replace With White , Substituir por branco Replaced Color , Cor Substituída Replacement Color , Cor de substituição Reptile , Réptil Rescaling , Redimensionamento Reset View , Repor Vista Resize Image for Optimum Effect , Redimensionar imagem para um efeito óptimo Resolution , Resolução Resolution (%) , Resolução (%) Resolution (px) , Resolução (px) Rest 33 , Descanso 33 Result Image , Imagem do resultado Result Type , Tipo de resultado Retouch Layer , Camada de retoque Retouched and Sharpened Areas , Áreas retocadas e afiadas Retouched Areas Only , Apenas áreas retocadas Retouched Image , Imagem retocada Retouched Image Basic , Imagem retocada Basic Retouched Image Final , Imagem retocada Final Retouching Style , Estilo de retoque Retro Brown 01 , Castanho Retro 01 Retro Summer 3 , Retro Verão 3 Retro Yellow 01 , Amarelo Retro 01 Return Scaling , Escala de retorno Reverse Bits , Bits inversos Reverse Bytes , Bytes inversos Reverse Effect , Efeito inverso Reverse Endianness , Endianismo inverso Reverse Frame Stack , Pilha de armação invertida Reverse Gradient , Gradiente Inverso Reverse Mod , Modo inverso Reverse Motion , Movimento inverso Reverse Order , Ordem inversa Reverse Pow , Pó invertido Reversing , Invertendo Revert Layer Order , Inverter ordem de camadas Revert Layers , Inverter camadas RGB [All] , RGB [Todos] RGB [Blue] , RGB [Azul] RGB [Green] , RGB [Verde] RGB [red] , RGB [vermelho] RGB Image + Binary Mask (2 Layers) , Imagem RGB + Máscara Binária (2 Camadas) RGB Quantization , Quantificação RGB RGB Tone , Tom RGB RGBA [All] , RGBA [Todos] RGBA [Alpha] , RGBA [Alfa] RGBA Foreground + Background (2 Layers) , RGBA Primeiro plano + Fundo (2 Camadas) RGBA Image (Full-Transparency / 1 Layer) , Imagem RGBA (Esparência total / 1 camada) RGBA Image (Updatable / 1 Layer) , Imagem RGBA (Actualizável / 1 Camada) Rice , Arroz Right , Certo Right Diagonal Foreground , Primeiro plano diagonal direito Right Diagonal Foreground , Primeiro plano diagonal direito Right Eye View , Vista do olho direito Right Foreground , Primeiro plano direito Right Position , Posição correcta Right Side Orientation , Orientação para o lado direito Right Slope , Encosta direita Right Stream Only , Apenas o fluxo de direita Rigid , Rígido Roddy (by Mahvin) , Roddy (por Mahvin) Rodilius [Animated] , Rodilius [Animado] Rooster , Galo Rotate , Rodar Rotate (muted) , Rodar (silenciado) Rotate (vibrant) , Rodar (vibrante) Rotate 180 Deg. , Rodar 180 graus. Rotate 270 Deg. , Rodar 270 graus. Rotate 90 Deg. , Rodar 90 graus. Rotate Hue Bands , Rodar as Bandas de Matizes Rotate Tree , Rodar árvore Rotated , Rodado Rotated (crush) , Rodado (esmagar) Rotations , Rotações Round , Ronda Roundness , Arredondamento Row by Row , Fila a fila RYB [All] , RYB [Todos] RYB [Blue] , RYB [Azul] RYB [Red] , RYB [Vermelho] RYB [Yellow] , RYB [Amarelo] [Yellow S-Curve Contrast , Contraste S-Curva Salt and Pepper , Sal e Pimenta Same as Input , O mesmo que Input Same Axis , O mesmo eixo Sample Image , Imagem de amostra Sampling , Amostragem Sat Bottom , Fundo do Sábado Sat Range , Gama Sat Satin , Cetim Saturated Blue , Azul Saturado Saturation , Saturação Saturation (%) , Saturação (%) Saturation Channel Gamma , Canal de Saturação Gama Saturation Correction , Correcção de Saturação Saturation EQ , EQ de Saturação Saturation Factor , Factor de Saturação Saturation Offset , Compensação de Saturação Saturation Shift , Turno de Saturação Saturation Smoothness , Saturação Suavidade Save CLUT as .Cube or .Png File , Guardar CLUT como ficheiro .Cube ou .Png Save Gradient As , Salvar Gradiente Como Saving Private Damon , Salvar o Damon Privado Scale , Balança Scale (%) , Escala (%) Scale 1 , Escala 1 Scale 2 , Escala 2 Scale CMYK , Balança CMYK Scale Factor , Factor de Escala Scale Output , Produção em escala Scale Plasma , Balança Plasma Scale RGB , Balança RGB Scale Style to Fit Target Resolution , Estilo de Escala para Ajustar a Resolução do Alvo Scale Variations , Variações de escala Scaled , Escala Scales , Balança Scaling Factor , Factor de Escala Scene Selector , Selector de cenas Science Fiction , Ficção Científica Screen , Ecrã Screen Border , Fronteira do ecrã Seamless Deco , Deco sem costura Seamless Turbulence , Turbulência sem costura Second Color , Segunda cor Second Offset , Segunda Compensação Second Radius , Segundo Raio Second Size , Segundo tamanho Secondary Color , Cor secundária Secondary Factor , Factor secundário Secondary Gamma , Gama secundária Secondary Radius , Raio secundário Secondary Shift , Turno Secundário Secondary Twist , Torcida Secundária Sectors , Sectores Seed , Semente Segment Max Length (px) , Comprimento Máximo do Segmento (px) Segmentation , Segmentação Segmentation Edge Threshold , Limiar de Segmentação Segmentation Smoothness , Suavidade de segmentação Segments , Segmentos Segments Strength , Força dos Segmentos Select By , Seleccione por Select-Replace Color , Seleccionar-Replace Color Selected Color , Cor seleccionada Selected Colors , Cores seleccionadas Selected Frame , Moldura Seleccionada Selected Mask , Máscara seleccionada Selection , Selecção Selective Desaturation , Desaturação selectiva Selective Gaussian , Gaussiano selectivo Self , Auto Self Glitching , Auto-compulsões Self Image , Auto-imagem Sensitivity , Sensibilidade Sepia , Sépia Sequence X4 , Sequência X4 Sequence X6 , Sequência X6 Sequence X8 , Sequência X8 Serenity , Serenidade Serial Number , Número de série Seringe 4 , Seringa 4 Serpent , Serpente Set Aspect Only , Aspecto do conjunto apenas Set Frame Format , Formato da moldura definida Seven Layers , Sete Camadas Seventies Magazine , Revista dos anos setenta Shade , Sombra Shade Angle , Ângulo de Sombra Shade Back to First Color , Sombra de volta à primeira cor Shade Bobs , Sombra de Bobs Shade Strength , Força da sombra Shading , Sombreamento Shading (%) , Sombreamento (%) Shadow , Sombra Shadow Contrast , Contraste de sombras Shadow Intensity , Intensidade da Sombra Shadow King 39 , Rei das Sombras 39 Shadow Offset X , Offset de Sombra X Shadow Offset Y , Offset de Sombra Y Shadow Patch , Mancha de Sombra Shadow Size , Tamanho da Sombra Shadow Smoothness , Sombra Suavidade Shadows , Sombras Shadows Abstraction , Abstracção das Sombras Shadows Brightness , Brilho das Sombras Shadows Color Intensity , Intensidade da cor das sombras Shadows Lightness , Sombras Ligeireza Shadows Selection , Selecção das sombras Shadows Threshold , Limiar das Sombras Shadows Zone , Zona das Sombras Shape , Forma Shape Area Max , Área de Forma Máxima Shape Area Max0 , Área de Forma Max0 Shape Area Min , Área de Forma Min Shape Area Min0 , Área de Forma Min0 Shape Average , Forma Média Shape Average0 , Forma Média0 Shape Max , Forma Max Shape Max0 , Forma Max0 Shape Median , Mediana da forma Shape Median0 , Forma Mediana0 Shape Min , Forma Min Shape Min0 , Forma Min0 Shapeaverage , Média da forma Shapeism , Forma Shapes , Formas Sharp Abstract , Abstrato nítido Sharpen , Afiar Sharpen [Deblur] , Afiar [Deblur] Sharpen [Gold-Meinel] , Afiar [Gold-Meinel] Sharpen [Gradient] , Afiar [Gradiente] Sharpen [Hessian] , Afiar [Hessian] Sharpen [Inverse Diffusion] , Afiar [Difusão Inversa] Sharpen [Multiscale] , Afiar [Multiscale] Sharpen [Octave Sharpening] , Afiar [Afiação por oitava] Sharpen [Richardson-Lucy] , Afiar [Richardson-Lucy] Sharpen [Shock Filters] , Afiar [Filtros de Choque] Sharpen [Texture] , Afiar [Textura] Sharpen [Tones] , Afiar [Tons] Sharpen [Unsharp Mask] , Afiar [Unsharp Mask] Sharpen [Whiten] , Afiar [Whiten] Sharpen Details in Preview , Afiar Detalhes na Pré-visualização Sharpen Edges Only , Afiar apenas as bordas Sharpen Object , Afiar Objecto Sharpen Radius , Afiar Raio Sharpen Shades , Afiar sombras Sharpened Areas Only , Apenas Áreas Afiadas Sharpening , Afiação Sharpening Layer , Camada de afiação Sharpening Radius , Raio de afiação Sharpening Strength , Força de afiação Sharpening Type , Tipo de afiação Sharpness , Nitidez Shift Linear Interpolation? , Interpolação Linear por Turno? Shift Point , Ponto de Turno Shift X , Turno X Shift Y , Turno Y Shine , Brilho Shininess , Brilho Shivers , Arrepios Shock Waves , Ondas de Choque Shopping Cart , Carrinho de compras Show Both Poles , Mostrar ambos os pólos Show Difference , Mostrar a diferença Show Frame , Moldura de exposição Show Grid , Mostrar Grelha Show Watershed , Mostrar Bacia Hidrográfica Shrink , Encolher Shuffle Pieces , Peças embaralhadas Side by Side , Lado a Lado Sierpinski Triangle , Triângulo de Sierpinski Silver , Prata Similarity Space , Espaço de semelhança Simple Local Contrast , Contraste local simples Simple Noise Canvas , Tela de Ruído Simples Simulate Film , Simular filme Sin(z) , Pecado(z) Single (Merged) , Único (fundido) Single Custom Depth Map , Mapa de Profundidade Personalizado Único Single Image Stereogram , Estereograma de imagem única Single Layer , Camada única Single Opaque Shapes Over Transp. BG , Formas opacas únicas sobre o transporte. BG Six Layers , Seis camadas Sixteen Threads , Dezasseis fios Size , Tamanho Size (%) , Tamanho (%) Size for Bright Tones , Tamanho para Tons Brilhantes Size for Dark Tones , Tamanho para Tons Escuros Size of Frame Numbers (%) , Tamanho dos Números de Moldura (%) Size Variance , Variação de tamanho Size-1 , Tamanho 1 Size-2 , Tamanho 2 Size-3 , Tamanho 3 Skeleton , Esqueleto Skin Estimation , Estimativa da pele Skin Mask , Máscara de pele Skin Tone Colors , Cores de Tom de Pele Skin Tone Mask , Máscara de Tom de Pele Skin Tone Protection , Protecção de Tom de Pele Skip All Other Steps , Saltar Todos os Outros Passos Skip Finest Scales , Saltar Balanças Finest Skip Others Steps , Saltar Outros Passos Skip This Step , Saltar esta etapa Skip to Use the Mask to Boost , Saltar para Usar a Máscara para Impulsionar Slice Luminosity , Luminosidade em fatias Slide [Color] (26) , Deslize [Cor] (26) Slow (Accurate) , Lento (Preciso) Slow Recovery , Recuperação lenta Small , Pequeno Small (Faster) , Pequeno (Mais rápido) SmallHD Movie Look (7) , Olhar SmallHD Movie (7) Smart , Inteligente Smart Contrast , Contraste Inteligente Smart Threshold , Limiar Inteligente Smooth [Anisotropic] , Liso [Anisotrópico] Smooth [Antialias] , Liso [Antialias] Smooth [Bilateral] , Suave [Bilateral] Smooth [Block PCA] , Suave [Bloco PCA] Smooth [Diffusion] , Suave [Difusão] Smooth [Geometric-Median] , Suave [Geométrico-Mediano] Smooth [Guided] , Liso [Guiado] Smooth [IUWT] , Suave [IUWT] Smooth [Mean-Curvature] , Suave [Média-Curvatura] Smooth [Median] , Liso [Mediano] Smooth [NL-Means] , Suave [NL-Means] Smooth [Patch-Based] , Liso [Baseado em Patch] Smooth [Patch-PCA] , Suave [Patch-PCA] Smooth [Perona-Malik] , Liso [Perona-Malik] Smooth [Selective Gaussian] , Liso [Gaussiano selectivo] Smooth [Skin] , Liso [Pele] Smooth [Thin Brush] , Liso [Pincel Fino] Smooth [Total Variation] , Suave [Variação Total] Smooth [Wavelets] , Liso [Wavelets] Smooth [Wiener] , Suave [Wiener] Smooth Abstract , Abstrato Liso Smooth Amount , Montante Suave Smooth Clear , Lisa e clara Smooth Colors , Cores suaves Smooth Crome-Ish , Crome-Ish liso Smooth Dark , Liso Escuro Smooth Fade , Desvanecer suavemente Smooth Green Orange , Laranja Verde Liso Smooth Light , Luz suave Smooth Looping , Laço liso Smooth Only , Apenas suaves Smooth Sailing , Vela suave Smooth Teal Orange , Laranja de Teal Lisa Smoothen Background Reconstruction , Suavizar a Reconstrução do Fundo Smoother Edge Protection , Protecção de arestas mais suaves Smoother Sharpness , Nitidez mais suave Smoother Softness , Suavidade mais suave Smoothing , Alisamento Smoothing Style , Estilo suavizante Smoothing Type , Tipo de alisamento Smoothness , Alisamento Smoothness (%) , Suavidade (%) Smoothness (px) , Suavidade (px) Smoothness Shadow , Sombra suavidade Smoothness Type , Tipo de alisamento Snowflake , Floco de Neve Snowflake 2 , Floco de Neve 2 Snowflake Recursion , Recurssão do Floco de Neve Soft , Suave Soft Light , Luz suave Soft Burn , Queimadura suave Soft Fade , Desbotamento suave Soft Glow , Brilho suave Soft Glow [Animated] , Brilho suave [Animado] Soft Light , Luz suave Soft Random Shades , Sombras suaves e aleatórias Soft Warming , Aquecimento suave Soften , Amaciar Soften All Channels , Amaciar todos os Canais Soften Guide , Guia de suavização Softlight , Luz suave Solarize Color , Solarize Cor Solarized Color2 , Cor Solarizada2 Solidify , Solidificar Solve Maze , Resolver o Labirinto Some , Alguns Some Blue , Algum Azul Some Cyan , Algum Ciano Some Green , Alguns verdes Some Key , Algumas chaves Some Magenta , Alguns Magenta Some Red , Algum vermelho Some Yellow , Algum Amarelo Sort Colors , Classificar Cores Sorting Criterion , Critério de ordenação Source (%) , Fonte (%) Source Color #1 , Cor da Fonte #1 Source Color #10 , Cor da Fonte #10 Source Color #11 , Cor da Fonte #11 Source Color #12 , Cor da Fonte #12 Source Color #13 , Cor da Fonte #13 Source Color #14 , Cor da Fonte #14 Source Color #15 , Cor da Fonte #15 Source Color #16 , Cor da Fonte #16 Source Color #17 , Cor da Fonte #17 Source Color #18 , Cor da Fonte #18 Source Color #19 , Cor da Fonte #19 Source Color #2 , Cor da Fonte #2 Source Color #20 , Cor da Fonte #20 Source Color #21 , Cor da Fonte #21 Source Color #22 , Cor da Fonte #22 Source Color #23 , Cor da Fonte #23 Source Color #24 , Cor da Fonte #24 Source Color #3 , Cor da Fonte #3 Source Color #4 , Cor da Fonte #4 Source Color #5 , Cor da Fonte #5 Source Color #6 , Cor da Fonte #6 Source Color #7 , Cor da Fonte #7 Source Color #8 , Cor da Fonte #8 Source Color #9 , Cor da Fonte #9 Source X-Tiles , Fonte X-Tiles Source Y-Tiles , Fonte Y-Tiles Space , Espaço Spacing , Espaçamento Span , Espanhol Spatial Bandwidth , Largura de banda espacial Spatial Metric , Métrica Espacial Spatial Overlap , Sobreposição espacial Spatial Precision , Precisão Espacial Spatial Radius , Raio Espacial Spatial Regularization , Regularização espacial Spatial Sampling , Amostragem espacial Spatial Scale , Escala espacial Spatial Tolerance , Tolerância Espacial Spatial Transition , Transição Espacial Spatial Variance , Variância Espacial Special Effects , Efeitos especiais Specific Saturation , Saturação específica Specify Different Output Size , Especificar tamanho de saída diferente Specify HaldCLUT As , Especificar HaldCLUT como Specular , Especular Specular (%) , Especular (%) Specular Centering , Centralização Especular Specular Intensity , Intensidade especular Specular Light , Luz Especular Specular Lightness , Ligeireza especular Specular Shininess , Brilho Especular Specular Size , Tamanho especular Speed , Velocidade Sphere , Esfera Spherize , Esferizar Spiral , Espiral Spiral RGB , Espiral RGB Spline B1 , Estribo B1 Spline Editor , Editor Spline Spline Max Angle (deg) , Ângulo Spline Max (deg) Spline Roundness , Arredondamento da linha de estrias Splines , Estrias Split Base and Detail Output , Base Dividida e Saída Detalhada Split Brightness / Colors , Brilho Dividido / Cores Split Details [Alpha] , Detalhes da divisão [Alpha] Split Details [Gaussian] , Detalhes da divisão [Gaussiano] Split Details [Wavelets] , Detalhes da divisão [Wavelets] Sponge , Esponja Spread , Espalhar Spread Amount , Montante de difusão Spread Angles , Ângulos de propagação Spread Noise Amount , Valor do Ruído de Espalhamento Spreading , Divulgação Spring Morning , Manhã de Primavera Sprocket 231 , Roda dentada 231 Spy 29 , Espião 29 Square , Praça Square (Inv.) , Quadrado (Inv.) Square 1 , Quadrado 1 Square 2 , Quadrado 2 Square to Circle , Quadrado a Círculo Squares , Praças Squares (Outline) , Esquadros (Esboço) SRGB Conversion , Conversão de SRGB Stabilizer , Estabilizador Stained Glass , Vidro Manchado Stamp , Carimbo Standard , Norma Standard (256) , Padrão (256) Standard [No Scan] , Padrão [Sem Scan] Standard Deviation , Desvio padrão Star , Estrela Star: -5*(z^3/3-Z/4)/2 , Estrela: -5*(z^3/3-Z/4)/2 Stars , Estrelas Stars (Outline) , Estrelas (Esboço) Start Angle , Ângulo de início Start Color , Iniciar Cor Start Frame Number , Número da moldura inicial Start of Mid-Tones , Início dos meios-tons Starting Angle , Ângulo inicial Starting Color , Cor inicial Starting Feathering , Iniciação à plumagem Starting Frame , Moldura inicial Starting Level , Nível inicial Starting Pattern , Padrão de início Starting Point , Ponto de partida Starting Point (%) , Ponto de partida (%) Starting Scale (%) , Escala inicial (%) Starting Value , Valor inicial Stationary Frames , Molduras estacionárias Std Angle (deg.) , Ângulo Std (deg.) Std Length Factor (%) , Factor de Comprimento Std (%) Std Thickness Factor (%) , Factor de Espessura Std (%) Stencil Type , Tipo Stencil Step , Etapa Step (%) , Etapa (%) Steps , Passos Stereo Image , Imagem Estéreo Stereo Window Position , Posição da janela estéreo Stereographic Projection , Projecção Estereográfica Stereoscopic Image Alignment , Alinhamento Estereoscópico de Imagem Stereoscopic Window Position , Posição da janela estereoscópica Straight , Em linha recta Strands , Cordões Street , Rua Strength , Força Strength (%) , Força (%) Strength Effect , Efeito de Força Strength Highlights , Destaques da força Strength Midtones , Pontos médios de força Strength Shadows , Sombras de Força Stretch , Esticar Stretch Colors , Cores de esticar Stretch Contrast , Contraste Esticado Stretch Factor , Factor de alongamento Strip , Tira Stripe Orientation , Orientação das riscas Stroke Angle , Ângulo de AVC Stroke Length , Comprimento do AVC Stroke Strength , Resistência ao AVC Strong , Forte Structure Smoothness , Suavidade de estrutura Studio , Estúdio Studio Skin Tone Shaper , Modelador de Tom de Pele de Estúdio Style , Estilo Style Variations , Variações de Estilo Subdivisions , Subdivisões Subpixel Interpolation , Interpolação Subpixel Subpixel Level , Nível subpixel Subsampling (%) , Subamostragem (%) Subtle Blue , Azul subtil Subtle Green , Verde subtil Subtle Yellow , Amarelo subtil Subtract , Subtrair Subtractive , Subtractivo Summer , Verão Summer (alt) , Verão (alt) Sunny (alt) , Ensolarado (alt) Sunny (rich) , Ensolarado (rico) Sunny (warm) , Ensolarado (quente) Super Warm , Super Quente Super Warm (rich) , Super Quente (rico) Superformula , Superfórmula Superimpose with Original? , Sobrepor com Original? Surface Disturbance , Perturbação da Superfície Surface Disturbance Multiplier , Multiplicador de Perturbações de Superfície Swan , Cisne Swap Colors , Trocar as cores Swap Layers , Troca de camadas Swap Radius / Angle , Trocar Raio / Ângulo Swap Sides , Lados de troca Sweet Bubblegum , Pastilha elástica doce Sweet Gelatto , Gelatto doce Symmetric 2D Shape , Forma 2D simétrica Symmetry , Simetria Symmetry Sides , Lados de simetria Synthesis Scale , Escala de Síntese Tangent Radius , Raio Tangente Target Color #1 , Cor Alvo #1 Target Color #10 , Cor Alvo #10 Target Color #11 , Cor Alvo #11 Target Color #12 , Cor Alvo #12 Target Color #13 , Cor Alvo #13 Target Color #14 , Cor Alvo #14 Target Color #15 , Cor Alvo #15 Target Color #16 , Cor Alvo #16 Target Color #17 , Cor Alvo #17 Target Color #18 , Cor Alvo #18 Target Color #19 , Cor Alvo #19 Target Color #2 , Cor Alvo #2 Target Color #20 , Cor Alvo #20 Target Color #21 , Cor Alvo #21 Target Color #22 , Cor Alvo #22 Target Color #23 , Cor Alvo #23 Target Color #24 , Cor Alvo #24 Target Color #3 , Cor Alvo #3 Target Color #4 , Cor Alvo #4 Target Color #5 , Cor Alvo #5 Target Color #6 , Cor Alvo #6 Target Color #7 , Cor Alvo #7 Target Color #8 , Cor Alvo #8 Target Color #9 , Cor Alvo #9 Teal Orange , Laranja de Teal TechnicalFX - Backlight Filter , TechnicalFX - Filtro de luz de fundo Temperature Balance , Balanço de temperatura Ten Layers , Dez camadas Tends to Be Square , Tende a ser quadrado Tension Green 1 , Verde Tensão 1 Tension Green 2 , Verde Tensão 2 Tension Green 3 , Verde Tensão 3 Tension Green 4 , Verde Tensão 4 Tensor Smoothness , Suavidade do Tensor Tertiary Factor , Factor terciário Tertiary Gamma , Gama terciária Tertiary Shift , Turno terciário Tertiary Twist , Torcida Terciária Text , Texto Texture , Textura Texture Enhance , Melhoria da textura Textured Glass , Vidro texturizado The Game of Life , O Jogo da Vida The Matrices , As Matrizes Thickness , Espessura Thickness (%) , Espessura (%) Thickness (px) , Espessura (px) Thickness Factor , Factor de Espessura Thin Edges , Bordaduras Finas Thin Separators , Separadores finos Thinness , Magreza Thinning , Desbaste Thinning (Slow) , Desbaste (lento) Three Layers , Três camadas Threshold , Limiar Threshold (%) , Limiar (%) Threshold Etch , Limiar Etch Threshold High , Limiar Alto Threshold Low , Limiar Baixo Threshold Max , Limiar Máximo Threshold Mid , Limiar Médio Threshold On , Limiar On Thumbnail Size , Tamanho da miniatura Tiger , Tigre Tile Poles , Postes de Azulejo Tile Size , Tamanho do azulejo Tileable Rotation , Rotação dos ladrilhos Tiled Isolation , Isolamento de azulejos Tiled Normalization , Normalização de azulejos Tiled Parameterization , Parametrização de azulejos Tiled Preview , Pré-visualização de azulejos Tiled Random Shifts , Turnos aleatórios de azulejos Tiled Rotation , Rotação do azulejo Tiles , Azulejos Tiles to Layers , Azulejos a camadas Time , Hora Time Step , Etapa temporal Timed Image , Imagem cronometrada To Equirectangular , Para Equirectangular To Nadir / Zenith , Para Nadir / Zenith Toasted Garden , Jardim tostado Toes , Dedos Toggle to View Base Image , Alternar para Ver Imagem Base Tolerance , Tolerância Tolerance to Gaps , Tolerância a Lacunas Tonal Bandwidth , Largura de banda tonal Tone Blur , Borrão de Tom Tone Enhance , Melhoria de Tom Tone Gamma , Tom Gamma Tone Mapping , Mapeamento de Tom Tone Mapping (%) , Mapeamento de Tom (%) Tone Mapping [Fast] , Mapeamento de Tom [Fast] Tone Mapping Fast , Mapeamento de Tom Rápido Tone Mapping Soft , Mapeamento de Tom Suave Tone Presets , Presets de Tom Tone Threshold , Limiar de Tom Tones Range , Gama de Tons Tones Smoothness , Suavidade dos tons Tones to Layers , Tons a camadas Top , Início Top Layer , Camada superior Top Left , Superior esquerdo Top Right , Superior direita Top-Left Vertex (%) , Vértice superior-esquerdo (%) Top-Right Vertex (%) , Vértice Top-Right (%) Torus , Toro Total Layers , Camadas totais Total Variation , Variação Total Transfer Colors [Histogram] , Cores de Transferência [Histograma] Transfer Colors [Patch-Based] , Cores de Transferência [Baseado em Patch] Transfer Colors [PCA] , Cores de Transferência [PCA] Transfer Colors [Variational] , Cores de transferência [Variacional] Transform , Transformar Transition Map , Mapa de Transição Transition Shape , Forma de transição Transition Smoothness , Transição Suavidade Transmittance Map , Mapa de transmissão Transparency , Transparência Transparent , Transparente Transparent Background , Antecedentes Transparentes Transparent Black & White , Preto e Branco Transparente Transparent Color , Cor transparente Transparent on Black , Transparente sobre Preto Transparent on White , Transparente sobre Branco Transparent Skin , Pele Transparente Tree , Árvore Trent 18 , Trento 18 Triangle , Triângulo Triangles , Triângulos Triangles (Outline) , Triângulos (Esboço) Triangular Hb , Hb triangular Tritanomaly , Tritanomalia True Colors 8 , Cores Verdadeiras 8 Trunk Color , Cor do tronco Trunk Opacity (%) , Opacidade do tronco (%) Trunks , Troncos Tulips , Túlipas Tunnel , Túnel Turbulence , Turbulência Turbulence 2 , Turbulência 2 Turbulent Halftone , Meio-tom turbulento Turn on Rotate and Twirl , Ligar Rotate e Twirl Twirl , Giro Twisted Rays , Raios torcidos Two Layers , Duas camadas Two Threads , Dois Fios Two-By-Two , Dois a Dois Type , Tipo Type Snowflake , Tipo Floco de Neve Ultra Water , Ultra Água UltraWarp++++ , UltraWarp+++++ Unaligned Images , Imagens desalinhadas Undeniable , Indiscutível Undeniable 2 , Indiscutível 2 Underwater , Debaixo de água Undo Anaglyph , Desfazer Anaglifo Uniform , Uniforme Unknown , Desconhecido Unpurple , Desenrolar Unsharp Mask , Máscara de Desatarraxar Unstrip , Desmarcar Up-Left , Para cima-esquerda Upper Layer Is the Top Layer for All Blends , A camada superior é a camada superior para todas as misturas Upper Side Orientation , Orientação lateral superior Uppercase Letters , Cartas em maiúsculas Upscale [Diffusion] , Upscale [Difusão] Upscale [Scale2x] , Upscale [Escala2x] Urban Cowboy , Cowboy Urbano Use as Hue , Utilização como Tonalidade Use as Saturation , Utilização como Saturação Use Individual Depth Map , Usar o Mapa de Profundidade Individual Use Light , Use Luz Use Maximum Tones , Usar o Máximo de Tons Use Top Layer as a Priority Mask , Usar camada superior como Máscara Prioritária User-Defined , Definido pelo utilizador User-Defined (Bottom Layer) , Definido pelo utilizador (Camada inferior) Uzbek Bukhara , Uzbeque Bukhara Uzbek Marriage , Casamento Uzbeque Uzbek Samarcande , Samarcande uzbeque V Cutoff , Corte em V Val Range , Gama Val Value , Valor Value Action , Acção de Valor Value Blending , Mistura de valores Value Bottom , Fundo de valor Value Correction , Correcção de valores Value Factor , Factor de Valor Value Normalization , Normalização de valores Value Offset , Compensação de valor Value Precision , Valor Precisão Value Range , Gama de valores Value Scale , Escala de valores Value Shift , Mudança de valor Value Smoothness , Valorizar a suavidade Value Top , Valor Topo Value Variance , Variação de valor Values , Valores Van Gogh: Almond Blossom , Van Gogh: Flor de Amêndoa Van Gogh: Irises , Van Gogh: Iris Van Gogh: The Starry Night , Van Gogh: A Noite Estrelada Van Gogh: Wheat Field with Crows , Van Gogh: Campo de Trigo com Corvos Variability , Variabilidade Variance , Variância Variation A , Variação A Variation B , Variação B Variation C , Variação C Vector Painting , Pintura Vectorial Velocity , Velocidade Vertex Type , Tipo de vértice Vertical 1 Amount , Vertical 1 Quantia Vertical 1 Length , Vertical 1 Comprimento Vertical 2 Amount , Vertical 2 Quantia Vertical 2 Length , Vertical 2 Comprimento Vertical Amount , Montante Vertical Vertical Array , Matriz Vertical Vertical Blur , Desfoque Vertical Vertical Length , Comprimento Vertical Vertical Size (%) , Tamanho Vertical (%) Vertical Stripes , Listras Verticais Vertical Tiles , Ladrilhos Verticais Very Course 5 , Muito Curso 5 Very Fine , Muito Bem Very High , Muito Alta Very High (Even Slower) , Muito alto (ainda mais lento) Very Warm Greenish , Muito Quente Esverdeado Vibrant , Vibrante Vibrant (alien) , Vibrante (extraterrestre) Vibrant (contrast) , Vibrante (contraste) Vibrant (crome-Ish) , Vibrante (crome-Ish) Victory , Vitória View Outlines Only , Ver apenas Esboços View Resolution , Ver Resolução Vignette Contrast , Contraste de vinhetas Vignette Min Radius , Vinheta Menos Raio Vignette Size , Tamanho da vinheta Vignette Strength , Força da vinheta Vintage (brighter) , Vintage (mais brilhante) Vintage Chrome , Crómio Vintage Vintage Style , Estilo Vintage Vintage Tone (%) , Tom de Vintage (%) Virtual Landscape , Paisagem Virtual Visible Watermark , Marca de Água Visível Vivid Edges , Bordaduras Vivas Vivid Edges* , Bordaduras Vivas* Vivid Light , Luz Vívida Vivid Screen , Ecrã Vívido Wall , Muro Warm , Quente Warm (highlight) , Quente (destaque) Warm (yellow) , Quente (amarelo) Warm Dark Contrasty , Contraste Quente e Escuro Warm Fade , Desvanecer o calor Warm Fade 1 , Fade quente 1 Warm Neutral , Neutro Quente Warm Sunset Red , Vermelho Pôr-do-sol Quente Warm Teal , Marreta Quente Warm Vintage , Vintage Quente Warp [Interactive] , Warp [Interactivo] Warp by Intensity , Warp por Intensidade Water , Água Waterfall , Queda de água Wave , Onda Wave(s) , Onda(s) Wavelength , Comprimento de onda Waves Amplitude , Ondas Amplitude Waves Smoothness , Ondas Suavidade We'll See , Veremos Weave , Tecer Weird , Estranho Whirl Drawing , Desenho de turbilhão White , Branco White Dices , Dados brancos White Layers , Camadas Brancas White Level , Nível Branco White on Black , Branco sobre Preto White on Transparent , Branco sobre Transparente White on Transparent Black , Branco sobre Preto Transparente White Point , Ponto Branco White to Black , Branco para Preto White Walls , Paredes Brancas Whitening , Branqueamento Whiter Whites , Brancos mais brancos Whites , Brancos Width , Largura Width (%) , Largura (%) Wind , Vento Winter Lighthouse , Farol de Inverno Wipe , Toalhita Wireframe , Estrutura de arame Without , Sem Wooden Gold 20 , Ouro de madeira 20 Work on Frameset , Trabalho em conjunto de molduras Wrap , Embrulho X Center , X Centro X Origine , X Origem X-Axis , Eixo X X-Axis Then Y-Axis , Eixo X e depois eixo Y X-Centering (%) , X-Centralização (%) X-Curvature , X-Curvatura X-Dispersion , X-Dispersão X-Factor , Factor X X-Factor (%) , Factor X (%) X-Resolution , X-Resolução X-Rotation , X-Rotação X-Scale , Escala X X-Shadow , Sombra X X-Size , Tamanho X X-Size (px) , Tamanho X (px) X-Variations , X-Variações X/Y-Ratio , Razão X/Y X1 (none) , X1 (nenhum) Xor , Xou XY Mirror , XY Espelho XY-Coordinates (%) , XY-Coordenadas (%) Y Center , Centro Y Y Origine , Y Origem Y-Amplitude , Amplitude Y Y-Axis , Eixo Y Y-Axis Then X-Axis , Eixo Y e depois eixo X Y-Border , Fronteira em Y Y-Centering (%) , Centralização em Y (%) Y-Curvature , Curvatura Y Y-Dispersion , Dispersão em Y Y-Factor , Fator Y Y-Factor (%) , Fator Y (%) Y-Resolution , Y-Resolução Y-Scale , Escala em Y Y-Size , Tamanho Y Y-Size (px) , Tamanho Y (px) Y-Variations , Y-Variações YAG Effect , Efeito YAG YCbCr (Chroma Only) , YCbCr (Apenas Chroma) YCbCr (Distinct) , YCbCr (Distinto) YCbCr (Luma Only) , YCbCr (Apenas Luma) YCbCr (Mixed) , YCbCr (Misto) YCbCr [Blue Chrominance] , YCbCr [Crominância Azul] YCbCr [Blue-Red Chrominances] , YCbCr [Crominâncias Azul-Red] YCbCr [Green Chrominance] , YCbCr [Crominância Verde] YCbCr [Luminance] , YCbCr [Luminância] YCbCr [Red Chrominance] , YCbCr [Crominância Vermelha] Yellow , Amarelo Yellow 55B , Amarelo 55B Yellow Factor , Fator Amarelo Yellow Film 01 , Filme Amarelo 01 Yellow Shift , Turno Amarelo Yellow Smoothness , Suavidade Amarela YES8 , SIM8 YIQ [chromas] , YIQ [cromas] You Can Do It , Você pode fazê-lo Z-Rotation , Z-Rotação Z-Scale , Escala Z Z-Size , Tamanho Z Z^^8 + 15*z^^4 - 1 , Z^^8 + 15*z^4 - 1 ZilverFX - B&W Solarization , ZilverFX - Solarização a P&B Zone System , Sistema de Zona Zoom Center , Centro de Zoom Zoom Factor , Fator Zoom ================================================ FILE: translations/filters/gmic_qt_ru.csv ================================================ Arrays & Tiles , Массивы и плитки Artistic , Художественный Black & White , Чёрное и белое Colors , Цвета Contours , Контуры Deformations , Деформации Degradations , Деградации Details , Подробности Testing , Тестирование Frames , Фреймы Frequencies , Частоты Layers , Слои Lights & Shadows , Свет и тени Patterns , Шаблоны Rendering , Оказание услуг Repair , Ремонт Sequences , Последовательности Silhouettes , Силуэты Icons , Иконки Misc , Ошибка Nature , Природа Others , Другие Stereoscopic 3D , Стереоскопическое 3D ♥ Support Us ! ♥ , ♥ Поддержите нас! ♥ *Colors Doping , *Цветной допинг *Colors Doping* , *Цветной допинг* *Comix Colors* , *Комикс Цветов* *Dark Edges* , *Тёмные края* *Dark Screen* , *Тёмный экран* *Graphix Colors , *Графиксные цвета *Vivid Edges* , *Яркие края* *Vivid Screen* , *Яркий экран* +180 Deg. , +180 градусов +90 Deg. , +90 градусов - NO - , - НЕТ - -1. Value Action , -1. Ценностное действие -2. Overall Channel(s) , -2. Общий канал (ы) -3. Normalisation Channel(s) , -3. Канал(ы) нормализации -4. Normalise , -4. Нормализуют -90 Deg. , -90 градусов .Png , Пнг 0 Deg. , 0 градусов 0. Recompute , 0. Вычислить 1 Levels , 1 Уровни 1. Plasma Texture [Discards Input Image] , 1. Плазменная текстура [Отбрасывает входное изображение]. 10. Quadtree Max Precision , 10. Квадтри Макс Точность 10th , десятый 10th Color , 10-ый цвет 11. Quadtree Min Homogeneity , 11. Квадтри Мин Гомогенность 11th , 11-й 12 Colors , 12 Цветов 12 Grays , 12 серый 12. Quadtree Max Homogeneity , 12. Квадтри Макс Однородность 125 Keypoints , 125 Ключевые точки 12th , 12-ый 13. Noise Type , 13. Тип шума 13th , 13-й 14. Minimum Noise , 14. Минимальный шум 14th , 14-я 15. Maximum Noise , 15. Максимальный шум 15th , 15-ый 16 Colors , 16 Цветов 16 Grays , 16 Серый 16. Noise Channel(s) , 16. Шумовой канал (ы) 16th , 16-ый 17. Warp Iterations , 17. Итерации деформации 18. Warp Intensity , 18. Интенсивность искривления 180 Deg. , 180 градусов 19. Warp Offset , 19. Смещение по деформации 1st , 1-ый 1st Additional Palette (.Gpl) , 1-я дополнительная палитра (.Gpl) 1st Color , 1-й цвет 1st Parameter , 1-й параметр 1st Text , 1-й Текст 1st Tone , 1-й Тон 1st Variance , 1-я Вариант 1st X-Coord , 1-й шнур X-Coord 1st Y-Coord , 1-й Y-корд 2 Colors , 2 цвета 2 Grays , 2 серые 2 Noise , 2 Шум 2-Strip Process , 2-полосный процесс 2. Plasma Scale , 2. Шкала плазмы 20. Scale to Width , 20. Шкала до ширины 21. Scale to Height , 21. Масштаб до высоты 216 Keypoints , 216 Ключевые точки 22. Correlated Channels , 22. Корреспондентские каналы 22.5 Deg. , 22,5 градуса 23. Boundary , 23. Граница 24. Warp Channel(s) , 24. Канал(ы) деформации 25. Random Negation , 25. Случайное отрицание 26. Random Negation Channel(s) , 26. Случайный канал(и) отрицания 27 Keypoints , 27 Ключевые точки 27. Gamma Offset , 27. Гамма-смещение 270 Deg. , 270 градусов 28. Hue Offset , 28. смещение оттенка 29. Normalise , 29. Нормализовать 2nd , 2-ой 2nd Additional Palette (.Gpl) , 2-я дополнительная палитра (.Gpl) 2nd Color , 2-й цвет 2nd Parameter , 2-й параметр 2nd Text , 2-й Текст 2nd Tone , 2-й Тон 2nd Variance , 2-я Вариант 2nd X-Coord , 2-й X-корд 2nd Y-Coord , 2-й Y-корд 2x Type , 2х Тип 2XY Mirror , 2XY Зеркало 2xy-Axes , 2xy-топоры 3 Colors , 3 Цвета 3 Grays , 3 серый 3 Mix , 3 Смешивание 3. Plasma Alpha Channel , 3. Плазменный Альфа-канал 30. Minimum Hue , 30. Минимальный оттенок 31. Maximum Hue , 31. Максимальный оттенок 32. Minimum Saturation , 32. Минимальное насыщение 33. Maximum Saturation , 33. Максимальное насыщение 34. Minimum Value , 34. Минимальное значение 343 Keypoints , 343 Ключевые точки 35. Maximum Value , 35. Максимальное значение 36. Hue Offset , 36. смещение оттенка 37. Saturation Offset , 37. Смещение по насыщению 38. Value Offset , 38. Смещение значения 3D Blocks , 3D-блоки 3D CLUT (Fast) , 3D CLUT (Быстро) 3D CLUT (Precise) , 3D CLUT (Точно) 3D Colored Object , 3D-цветной объект 3D Conversion , 3D-преобразование 3D Elevation , 3D-Возвышение 3D Extrusion , 3D-экструзия 3D Extrusion [Animated] , 3D-экструзия [анимированная] 3D Image Object , 3D-изображение Объект 3D Image Object [Animated] , 3D-изображение Объект [Анимированный] 3D Image Type , Тип 3D изображения 3D Lathing , 3D-обработка 3D Metaballs , 3D Металлы 3D Random Objects , Случайные объекты 3D 3D Reflection , 3D-отражение 3D Rubber Object , 3D-резиновый объект 3D Starfield , 3D Звёздное поле 3D Text Pointcloud , 3D Облако Текста 3D Tiles , 3D плитка 3D Video Conversion , Преобразование 3D видео 3D Waves , 3D-волны 3rd , 3-ий 3rd Color , 3-й цвет 3rd Parameter , 3-й параметр 3rd Tone , 3-й Тон 3rd X-Coord , 3-й X-корд 3rd Y-Coord , 3-й Y-корд 4 Colors , 4 цвета 4 Grays , 4 серые 4. Segmentation [No Alpha Channel] , 4. Сегментация [No Alpha Channel] 4096x4096 Layer , 4096x4096 Слой 45 Deg. , 45 градусов 4th , 4-ый 4th Color , 4-й цвет 4th Tone , 4-й Тон 5. Edge Threshold , 5. Порог Кромки 512x512 Layer , 512x512 Слой 5th , 5-ый 5th Color , 5-й цвет 5th Tone , 5-й Тон 6. Smoothness , 6. Гладкость 60's (faded Alt) , 60-е годы (выцветший Альт) 60's (faded) , 60-е годы (потускнело) 64 (Faster) , 64 (Быстрее) 64 Keypoints , 64 Ключевые точки 67.5 Deg. , 67,5 градусов 6th , шестой 6th Color , 6-й цвет 6th Tone , 6-й Тон 7. Blur , 7. Пятно 7th , 7-я 7th Color , 7-й цвет 7th Tone , 7-й тон 8 Colors , 8 Цветов 8 Grays , 8 серый 8 Keypoints (RGB Corners) , 8 Ключевые точки (углы RGB) 8. Quadtree Pixelisation [No Alpha Channel] , 8. Квадтри пикселизации [Нет альфа-канала] 8th , 8-я 8th Color , 8-й цвет 8th Tone , 8-й тон 9. Quadtree Min Precision , 9. Квадтри Мин Точность 90 Deg. , 90 градусов. 9th , 9-ый 9th Color , 9-й цвет [Cyan]MYK , МИК A Lot of Cyan , Много сине-зелёного A Lot of Key , Много ключей A Lot of Magenta , Много пурпурного A Lot of Yellow , Много желтого A-Color Factor , А-Цветовой фактор A-Color Shift , сдвиг цвета A-Color Smoothness , Гладкость цвета A4 / 100 PPI (Recommended) , A4 / 100 PPI (Рекомендуется) Abigail Gonzalez (21) , Абигайль Гонсалес (21) About G'MIC , О G'MIC Absolute Brightness , Абсолютная Яркость Absolute Value , Абсолютная стоимость Abstraction , Абстракция Acceleration , Ускорение Achromatomaly , Ахроматомалия Achromatopsia , Ахроматопсия Acros , Акрос Acros+G , Акрос+Г Acros+Ye , Акрос+Да Action , Действие Action #1 , Действие № 1 Action #10 , Действие № 10 Action #11 , Действие № 11 Action #12 , Действие № 12 Action #13 , Действие № 13 Action #14 , Действие № 14 Action #15 , Действие № 15 Action #16 , Действие № 16 Action #17 , Действие № 17 Action #18 , Действие № 18 Action #19 , Действие № 19 Action #2 , Действие № 2 Action #20 , Действие № 20 Action #21 , Действие № 21 Action #22 , Действие #22 Action #23 , Действие № 23 Action #24 , Действие № 24 Action #3 , Действие № 3 Action #4 , Действие № 4 Action #5 , Действие № 5 Action #6 , Действие № 6 Action #7 , Действие № 7 Action #8 , Действие № 8 Action #9 , Действие № 9 Action Magenta 01 , Акция "Маджента 01 Action Red 01 , Действие Красный 01 Activate 'Pencil Smoother' , Активируйте "Карандаш Гладче". Activate Color Enhancement , Активировать улучшение цвета Activate Colors Geometric Shapes , Активировать цвета Геометрические формы Activate Custom Filter , Активировать пользовательский фильтр Activate Lizards , Активировать ящериц Activate Mirror , Активировать зеркало Activate Pink Elephants , Активировать розовых слонов Activate Second Direction , Активировать второе направление Activate Shakes , Активировать коктейли Activate Slice 1 , Активировать ломтик 1 Activate Slice 2 , Активировать ломтик 2 Activate Slice 3 , Активировать ломтик 3 Activate Slice 4 , Активировать ломтик 4 Activer Symmetrizoscope , Активерный симметризоскоп Adaptive , Адаптивный сайт Add , Добавить Add 1px Outline , Добавить 1px Очертание Add Alpha Channels to Detail Scale Layers , Добавить альфа-каналы в слои деталей шкалы Add as a New Layer , Добавить как новый слой Add Chalk Highlights , Добавить мелом Основные моменты Add Color Background , Добавить цветной фон Add Comment Area in HTML Page , Добавить область комментариев в HTML Page Add Grain , Добавить зерно Add Image Label , Добавить ярлык изображения Add Painter's Touch , Добавить прикосновение художника Add User-Defined Constraints (Interactive) , Добавить пользовательские ограничения (интерактивные) Additional Duplicates Count , Дополнительный подсчет дубликатов Additional Outline , Дополнительное описание Additive , Добавочный сайт Adjust Background Reconstruction , Настроить фоновую реконструкцию Adventure 1453 , Приключение 1453 Agfa Vista 200 , Агфа-Виста 200 Aggressive Highlights Recovery 5 , Агрессивные моменты Восстановление 5 Alex Jordan (81) , Алекс Джордан (81) Algorithm , Алгоритм Aliasing , Псевдоожижение Alien Green , Чужеродная зелень Align Image Streams , Выравнивание потоков изображений Align Layers , Выравнивающие слои Aligned , Подписанный Alignment Type , Тип выравнивания All , Все All 45° Rotations , Все 45° Вращения All 90° Rotations , Все 90&деградусов; Вращения All [Collage] , Все [Коллаж] All but Reference Color , Все, кроме эталонного цвета All Layers and Masks , Все слои и маски All Tones , Все тона All XY-Flips , Все XY-флипы Allow Angle , Разрешить угол Allow Outer Blending , Разрешить внешнее смешивание Allow Self Intersections , Разрешить самопересечения Alpha , Альфа Alpha Channel , Альфа-канал Alpha Mode , альфа-режим Also Match Gradients , Также совпадают градиенты Ambient (%) , Окружающая среда (%) Ambient Lightness , Окружающая освещенность Amount , Сумма Amplitude , Амплитуда Amplitude (%) , Амплитуда (%) Amplitude / Angle , Амплитуда / Угол Amstragram , Амстраграмма Amstragram+ , Амстраграмма+ Anaglypgh Green/magenta Optimized , Анаглипг Зеленый/магента Оптимизировано Anaglyph Blue/yellow , Анаглиф Голубой/желтый Anaglyph Blue/yellow Optimized , Анаглиф Голубой/желтый Оптимизированный Anaglyph Glasses Adjustment , Регулировка анаглифных стекол Anaglyph Green/magenta , Анаглиф Грин/Магента Anaglyph Green/magenta Optimized , Анаглиф Зеленый/магента Оптимизированный Anaglyph Reconstruction , Реконструкция анаглифов Anaglyph Red/cyan , Анаглиф Красный/голубой Anaglyph Red/cyan Optimized , Анаглиф Красный/голубой Оптимизированный Anaglyph: Red/Cyan , Анаглиф: красный/синий AnalogFX - Old Style I , AnalogFX - Старый Стиль I AnalogFX - Old Style II , AnalogFX - Старый Стиль II AnalogFX - Old Style III , AnalogFX - Старый Стиль III AnalogFX - Soft Sepia I , AnalogFX - мягкая сепия I AnalogFX - Soft Sepia II , AnalogFX - мягкая сепия II Analysis Scale , Шкала анализа Analysis Smoothness , Гладкость анализа And , И Angle (%) , Угол (%) Angle (deg) , Угол (градусов) Angle (deg.) , Угол (градус) Angle / Size , Угол / размер Angle Cut , Отрезок под углом Angle Dispersion , рассеивание углов Angle Image Contour , Угловой контур изображения Angle of Disturbance Surface , Угол возмущения Поверхность Angle of Main Nebulous Surface , Угол главной поверхности туманности Angle Range , Диапазон углов Angle Range (deg.) , Диапазон углов (град.) Angle Tilt , Угол наклона Angle Variations , Вариации углов Anguish , Страдание Angular , Угловой Angular Precision , угловая точность Angular Tiles , Угловая плитка Anime , Аниме Anisotropic , Анизотропный Anisotropy , Анизотропия Annular Steiner Chain Round Tiles , Круглые плитки с кольцевой цепью Штейнера Anti Alias , Анти-альянс Antialiasing , Сглаживание Antisymmetry , Антисимметрия Any , Любой Apocalypse This Very Moment , Апокалипсис - это очень мгновенный момент. Apply Adjustments On , Применить настройки Вкл Apply Color Balance , Применить цветовой баланс Apply External CLUT , Применить внешнее замыкание Apply Mask , Применить Маску Apply Skin Tone Mask , Применить маску тона кожи Apply Transformation From , Применить преобразование от Arabica 12 , Арабика 12 Area , Территория Area Smoothness , Площадь Гладкость Areas Light Adjustment , Области Регулировка освещения Areas Smoothness , Области Гладкость Array [Faded] , Массив [Выцветший] Array [Mirrored] , Массив [Зеркало] Array [Random Colors] , Массив [Случайные цвета] Array [Random] , Массив [Случайность] Array [Regular] , Массив [Обычный] Array Mode , Режим массива Arrows , Стрелки Arrows (Outline) , Стрелки (Outline) Artistic Modern , Художественный Модерн Artistic Hard , Художественно сложная Artistic Round , Художественный раунд Ascii Art , Асций Арт Aspect , Аспект Aspect Ratio , Соотношение сторон Asplenium Adiantum-Nigrum , аспленовый адиант-нигрум Associated Color , Соответствующий цвет Astia , Астия Attenuation , Аттенуация Aurora , Аврора Australia , Австралия Auto , Авто Auto Balance , Автоматический баланс Auto Crop , Автоматическая культура Auto Reduce Level (Level Slider Is Disabled) , Автоматическое снижение уровня (ползунок уровня отключен) Auto Set Hue Inverse (Hue Slider Is Disabled) , Автоматическая установка инверсии оттенка (ползунок оттенка отключен) Auto-Clean Bottom Color Layer , Автоматически чистый нижний цветной слой Auto-Reduce Number of Frames , Автоматическая перезагрузка Количество кадров Auto-Set Periodicity , Автоматическая установка периодичности Auto-Threshold , Автопорог Autocrop , Автокроп Autocrop Output Layers , Автоматические выходные слои Automatic , Автоматический Automatic & Contrast Mask , Автоматическая и контрастная маска Automatic [Scan All Hues] , Автоматически [Сканировать все оттенки] Automatic Color Balance , Автоматический цветовой баланс Automatic Depth Estimation , Автоматическая оценка глубины Automatic Upscale for Optimum Results , Автоматическое повышение шкалы для оптимальных результатов Autumn , Осень Ava 614 , ава 614 Avalanche , Лавина Average , Средний Average 3x3 , Средний размер 3х3 Average 5x5 , В среднем 5х5 Average 7x7 , средний размер 7х7 Average 9x9 , В среднем 9х9 Average RGB , Средний RGB Average Smoothness , Средняя гладкость Avg / Max Weight , Авг/Макс Вес Avg Branching , Авгская ветвь Avg Left Angle (deg.) , Авг Левый Угол (град.) Avg Length Factor (%) , Коэффициент длины Avg (%) Axis , Ось Azimuth , Азимут Azrael 93 , Азраиль 93 B&W , КРОВАТЬ И НОЧЬ B&W Pencil [Animated] , Чёрно-белый карандаш [анимированный] B&W Photograph , ч/б фотография B&W Stencil , трафаретная печать B&W Stencil [Animated] , Трафарет по трафарету B&W [анимированный] B-Color Factor , коэффициент B-цвета B-Color Shift , сдвиг цвета B B-Color Smoothness , Гладкость цвета B B-Component , B-компонент Background , Справочная информация Background Color , Цвет фона Background Intensity , Интенсивность фона Background Point (%) , Фоновая точка (%) Backward , Назад Backward Horizontal , Назад по горизонтали Backward Vertical , обратная вертикаль Balance , Баланс Balance Color , Цвет баланса Balance SRGB , Баланс SRGB Ball , Шар Balloons , Воздушные шары Balls , Шарики Band Width , Ширина полосы Banding Denoise , Обвязка денуазы Bandwidth , Полоса пропускания Barbara , Барбара Barbed Wire , колючая проволока Barnsley Fern , папоротник Барнсли Bars , Бары Base Reference Dimension , Базовое эталонное измерение Base Scale , Базовая шкала Base Thickness (%) , Базовая толщина (%) Basic Adjustments , Основные корректировки Batch Processing , Пакетная обработка Bayer Filter , фильтр Байера Bayer Reconstruction , Реконструкция Байера Behind , Позади Below , Ниже Berlin Sky , берлинское небо Best Match , Лучший матч Beta , Бета-версия BG Textured , BG Текстурированный Bi-Directional , Двунаправленный Bicubic , Бикубик Bidirectional [Sharp] , Двунаправленный [Sharp] Bidirectional [Smooth] , Двунаправленный [Гладкий] Bidirectional Rendering , двунаправленное реендеринг Bilateral , Двусторонний Bilateral Radius , Двустороннее Радиус Binary , Двоичный Binary Digits , двоичные цифры Bit Masking (End) , Битовая маскировка (в конце) Bit Masking (Start) , Битовая маскировка (Старт) Black & White , Чёрное и белое Black & White (25) , Чёрное и белое (25) Black & White-1 , Чёрно-белый-1 Black & White-10 , Чёрное и Белое-10 Black & White-2 , Чёрное и Белое-2 Black & White-3 , Чёрное и белое 3 Black & White-4 , Чёрный и белый-4 Black & White-5 , Чёрный и белый-5 Black & White-6 , Чёрный и белый-6 Black & White-7 , Чёрное и Белое-7 Black & White-8 , Чёрный и белый 8 Black & White-9 , Чёрное и Белое-9 Black Crayon Graffiti , черные карандашные граффити Black Dices , Чёрные кубики Black Level , Уровень черного Black on Transparent , Чёрный на прозрачном Black on Transparent White , Черный на прозрачном белом Black on White , Чёрный на белом Black Point , Чёрная точка Black Star , Чёрная звезда Black to White , От черного до белого Blacks , Чернокожие Blade Runner , Лезвиевой бегунок Blank , Пустой Bleach Bypass , Отбеливающий байпас Bleach Bypass 1 , Отбеливающий байпас 1 Bleach Bypass 2 , Отбеливающий байпас 2 Bleach Bypass 3 , Отбеливатель байпас 3 Bleach Bypass 4 , Отбеливающий байпас 4 Bleech Bypass Green , Байпасный зеленый Bleech Bypass Yellow 01 , Байпасный желтый 01 Blend , Смешать Blend [Average All] , Смешайте [Средние все] Blend [Edges] , Смешать [края] Blend [Fade] , Смесь [Fade] Blend [Median] , Смесь [Медиана] Blend [Seamless] , Смесь [Бесшовная] Blend [Standard] , Смесь [Стандартная] Blend Mode , Режим смешивания Blend Rays , Смесительные лучи Blend Scales , Весы для смешивания Blend Size , Размер смеси Blend Threshold , Порог смешивания Blending Mode , Режим смешивания Blending Size , Размер купажа Blindness Type , Тип слепоты Blob 1 , Капля 1 Blob 1 Color , Капля 1 Цвет Blob 10 , Капля 10 Blob 10 Color , Капля 10 Цвет Blob 11 , капля 11 Blob 11 Color , Капля 11 Цвет Blob 12 , Капля 12 Blob 12 Color , Капля 12 Цвет Blob 2 Color , Капля 2 Цвет Blob 3 , Капля 3 Blob 3 Color , Капля 3 Цвет Blob 4 , Капля 4 Blob 4 Color , Капля 4 Цвет Blob 5 , Капля 5 Blob 5 Color , Капля 5 Цвет Blob 6 , Капля 6 Blob 6 Color , Капля 6 Цвет Blob 7 , Капля 7 Blob 7 Color , Капля 7 Цвет Blob 8 , Капля 8 Blob 8 Color , Капля 8 Цвет Blob 9 , Капля 9 Blob 9 Color , Капля 9 Цвет Blob Size , Размер капли Blobs Editor , редактор Blobs Bloc , Блок Bloc Size (%) , Размер блока (%) Blockism , Блокизм Bloom , Блум Blue , Синий Blue & Red Chrominances , Голубые и красные хромины Blue Chroma Factor , Синий цветовой фактор Blue Chroma Shift , Сдвиг синей хромы Blue Chroma Smoothness , Гладкость синей хромы Blue Chrominance , Голубое хромансирование Blue Cold Fade , Голубое холодное угасание Blue Dark , Синяя Тьма Blue Factor , Синий фактор Blue House , Голубой дом Blue Ice , Голубой лед Blue Level , Синий уровень Blue Mono , Голубой моно Blue Rotations , Голубые повороты Blue Screen Mode , Режим синего экрана Blue Shadows 01 , Голубые Тени 01 Blue Shift , Голубое смещение Blue Smoothness , Голубая гладкость Blue Steel , Голубая сталь Blue Wavelength , Длина синей волны Blue-Green , Сине-зеленый Blues , Блюз Blur , Пятно Blur [Angular] , Пятно [Угловое] Blur [Bloom] , Пятно [Блум] Blur [Depth-Of-Field] , Пятно [Глубина поля] Blur [Gaussian] , Пятно [Гаусс] Blur [Glow] , Пятно [Светится] Blur [Linear] , Пятно [Линейный] Blur [Multidirectional] , Пятно [разнонаправленное] Blur [Radial] , Пятно [Радиальный] Blur Alpha , Пятно Альфа Blur Amount , размытость Blur Amplitude , амплитуда размытия Blur Dodge and Burn Layer , Пятно Додж и ожоговый слой Blur Factor , коэффициент размытости Blur Frame , размытая рама Blur Percentage , Размытый процент Blur Precision , точность размытия Blur Shade , Тень Пятна Blur Standard Deviation , Стандартная девиатура Размытия Blur Strength , Прочность при размывании Blur the Mask , Размыть Маску Boats , Лодки Bob Ford , Боб Форд Bokeh , Бокэ Boost Chromaticity , повышенная хроматичность Boost Contrast , повышенный контраст Boost Stroke , удар тупика Border Color , Цвет границы Border Opacity , Прозрачность границ Border Outline , Очертание границы Border Smoothness , Гладкость границ Border Thickness (%) , Толщина границы (%) Border Width , Ширина границы Both , Оба Bottles , Бутылки Bottom , Нижний Bottom and Left Foreground , Нижнее и левое поле на переднем плане Bottom and Right Foreground , Нижний и правый передний план Bottom and Top Foreground , Нижний и верхний план Bottom Layer , Нижний слой Bottom Left , Нижнее левое Bottom Right , Нижнее право Bottom Size , Нижний размер Bottom-Left , Слева внизу Bottom-Left Vertex (%) , Нижняя левая вершина (%) Bottom-Right , Нижнее право Bottom-Right Vertex (%) , Нижняя-правая вершина (%) Bouncing Balls , Прыгающие шары Boundaries (%) , Границы (%) Boundary , Граница Boundary Condition , Граничное условие Boundary Conditions , Пограничные условия Bourbon 64 , Бурбон 64 Box , Вставка Box Fitting , Коробка Подгонка Branches , Филиалы Braque: Landscape near Antwerp , Брак: Пейзаж под Антверпеном Braque: Le Viaduc à L'Estaque , Брак: Le Viaduc à L'Estaque Braque: Little Bay at La Ciotat , Брак: Литтл Бэй в Ла Сиота Braque: The Mandola , Брак: Мандола Bright , Яркий сайт Bright Green , ярко-зелёный Bright Green 01 , Ярко-зеленый 01 Bright Length , Яркая длина Bright Pixels , Яркие пиксели Bright Teal Orange , ярко-синий апельсин Bright Warm , Яркое тепло Brightness , Яркость Brightness (%) , Яркость (%) Bristle Size , Размер щетины Bronze , Бронзовый Brownish , Коричневатый Brushify , Очистить Built-in Gray , Встроенный серый Bump Factor , коэффициент ударения Burn , Сжечь Burn Strength , Прочность при изжоге Butterfly , Бабочка By Blue Chrominance , Компания Blue Chrominance By Blue Component , По синей составляющей By Custom Expression , Посредством пользовательского выражения By Green Component , По Зелёному Компоненту By Iteration , По итерации By Lightness , По Светлости By Luminance , По Фирме Luminance By Red Chrominance , Компания Red Chrominance By Red Component , Красным компонентом By Value , По значению Byers 11 , Байерс 11 C[Magenta]YK , C[пурпурный] YK Camera Motion Only , Только движение камеры Camera X , Камера X Camera Y , Камера Y Cameraman , Оператор Camouflage , Камуфляж Candle Light , Свеча Canvas , Холст Canvas Brightness , яркость холста Canvas Color , Цвет холста Canvas Darkness , Холстовая тьма Canvas Texture , Текстура холста Car , Автомобиль Card Suits , Костюмы для карт Caribe , Карибе Cartesian Transform , Преобразование Картезиан Cartoon , Мультфильм Cartoon [Animated] , Мультфильм [анимационный] Cat , Кошка Category , Категория Cell Size , Размер ячейки Center , Центр Center (%) , Центр (%) Center Background , Центр Справочная информация Center Foreground , Центровое поле на переднем плане Center Help , Помощь центра Center Size , Центральный размер Center Smoothness , Гладкость центра Center X , Центр Х Center X-Shift , Центр X-Shift Center Y , Центр Y Center Y-Shift , Центральная Y-образная смена Centering (%) , Центрирование (%) Centering / Scale , Центрирование / масштабирование Centers Color , Центры Цвет Centers Radius , Центры Радиус Centimeter , сантиметр Central Perspective Outdoor , Центральная перспектива на улице Central Perspective Indoor , Центральная Перспектива Крытый Central Perspective Outdoor , Центральная перспектива на улице Centre , Центр Chalk It Up , Врубай мелом Channel #1 , Первый канал Channel #2 , 2-й канал Channel #3 , 3-й канал Channel Processing , Обработка канала Channel(s) , Канал(ы) Channels , Каналы Channels to Layers , Каналы на слои Charcoal , Древесный уголь Charset , Шарсет Chebyshev , Чебышев Checkered Inverse , клетчатая инверсия Chemical 168 , Химический 168 Chessboard , Шахматная доска Chick , Цыпочка Chroma Noise , Хроматический шум Chromatic Aberrations , хроматические аберрации Chromaticity From , Хроматичность От Chrome 01 , Хром 01 Chrominances Only (ab) , Только хроминансы (ab) Chrominances Only (CbCr) , Только хроминансы (CbCr) Cine Bright , Сине Брайт Cine Cold , Сине Холодный Cine Drama , Кинодрама Cine Warm , Теплое вино Cinema , Кинотеатр Cinema 2 , Кинотеатр 2 Cinema 3 , Кинотеатр 3 Cinema 4 , Кинотеатр 4 Cinema 5 , Кинотеатр 5 Cinema Noir , Киноно нуар Cinematic (8) , Кинематографический (8) Cinematic for Flog , Кинематограф для Флога Cinematic Lady Bird , Птица-кинематографистка Cinematic Mexico , Кинематографическая Мексика Cinematic Travel (29) , Кинематографическое путешествие (29) Cinematic-01 , Кинематограф-01 Cinematic-02 , Кинематограф-02 Cinematic-03 , Кинематографический-03 Cinematic-1 , Кинематографический-1 Cinematic-10 , Кинематограф-10 Cinematic-2 , Кинематограф-2 Cinematic-3 , Кинематографический-3 Cinematic-4 , Кинематографический-4 Cinematic-5 , Кинематограф-5 Cinematic-6 , Кинематограф-6 Cinematic-7 , Кинематографический-7 Cinematic-8 , Кинематограф-8 Cinematic-9 , Кинематографический-9 Circle , Круг Circle (Inv.) , Круг (инв.) Circle 1 , 1-й круг Circle 2 , Круг 2 Circle Abstraction , Абстракция круга Circle Art , Кружковое искусство Circle to Square , Круг к площади Circle Transform , Преобразование круга Circles , Круги Circles (Outline) , Круги (контур) Circles 1 , Круги 1 Circles 2 , Круги 2 Circular , Циркуляр City 7 , Город 7 Clarity , Ясность Classic Chrome , Классический хром Classic Teal and Orange , Классический тел и апельсин Clayton 33 , Клейтон 33 Clean , Чистый Clean Text , Чистый текст Clear Control Points , Чистые контрольные точки Clear Teal Fade , Чистое затухание тела Cliff , Клифф Clip , Клип Clip CMYK , Клип CMYK Clip RGB , Клип RGB Closeup , Закрытие Closing , Закрытие Closing - Opening , Закрытие - Открытие Closing - Original , Закрытие - Оригинал Clouds , Облака Clouseau 54 , Клюзо 54 CLUT Opacity , CLUT Непрозрачность CM[Yellow]K , CM[жёлтый] K CMY[Key] , CMY[Ключ] CMYK [cyan] , CMYK [циан] CMYK [Key] , CMYK [Ключ] CMYK [Magenta] , CMYK [пурпурный] CMYK [Yellow] , CMYK [Желтый] CMYK Tone , CMYK Тон Coarse , Грубый Coarsest (faster) , Самый грубый (быстрее) Cobi 3 , Коби 3 Code , Код Coefficients , Коэффициенты Coffee 44 , Кофе 44 Coherence , Согласованность Cold Clear Blue , Холодный прозрачный синий Cold Clear Blue 1 , Холодный прозрачный синий 1 Cold Simplicity 2 , Холодная простота 2 Color , Цвет Color (rich) , Цвет (богатый) Color 1 , Цвет 1 Color 1 (Up/Left Corner) , Цвет 1 (верхний/левый угол) Color 2 , Цвет 2 Color 2 (Up/Right Corner) , Цвет 2 (вверх/вправо) Color 3 , Цвет 3 Color 3 (Bottom/Left Corner) , Цвет 3 (нижний/левый угол) Color 4 , Цвет 4 Color 4 (Bottom/Right Corner) , Цвет 4 (нижний/правый угол) Color A , Цвет А Color Abstraction Opacity , Цветовая абстракция Непрозрачность Color Abstraction Paint , Цветная абстракция Краска Color B , Цвет В Color Balance , Цветовой баланс Color Basis , Цветовая основа Color Blending , Цветовое смешивание Color Blindness , Цветная слепота Color Blue-Yellow , Цвет сине-желтый Color Boost , Цветной всплеск Color Burn , Цветной ожог Color C , Цвет С Color Channel Smoothing , Сглаживание цветовых каналов Color Channels , Цветовые каналы Color D , Цвет D Color Dispersion , Цветовое рассеивание Color Doping , Цветной допинг Color E , Цвет Е Color Effect Mode , Режим цветового эффекта Color F , Цвет F Color G , Цвет G Color Gamma , Цветовая гамма Color Grading , Цветовая классификация Color Green-Magenta , Цвет зеленый-маджента Color Highlights , Цветовые акценты Color Image , Цветное изображение Color Intensity , Интенсивность цвета Color Mask , Цветная маска Color Mask [Interactive] , Цветная маска [интерактивная] Color Median , Цвет Медианы Color Metric , Цветовая метрика Color Midtones , Цветные полутоны Color Mode , Цветовой режим Color Model , Цвет Модель Color Negative , Отрицательный цвет Color on White , Цвет на белом Color Overall Effect , Общий цветовой эффект Color Presets , Цветовые настройки Color Quantization , Количественное определение цвета Color Rendering , Цветовое оформление Color Shading (%) , Цветовое затенение (%) Color Shadows , Цветовые тени Color Smoothness , Гладкость цвета Color Space , Цветовое пространство Color Spots + Extrapolated Colors + Lineart , Цветовые пятна + экстраполированные цвета + линейный рисунок Color Spots + Lineart , Цветовые пятна + линейный рисунок Color Strength , Прочность цвета Color Temperature , Цветовая температура Color Tolerance , Цветовая толерантность Color Variation [Random -1] , Вариация цвета [Случайный -1] Colored Geometry , цветная геометрия Colored Grain , Цветное зерно Colored Lineart , Цветная линейка Colored on Black , Окрашен в чёрный цвет Colored on Transparent , Цветной на прозрачном Colored Outline , Цветной набросок Colored Pencils , Цветные карандаши Colored Regions , Цветные регионы Colorful , Красочный Colorful 0209 , Красочный 0209 Colorful Blobs , Красочные Капли Coloring , Раскраска Colorize [Interactive] , Окрасить [интерактивный] Colorize [Photographs] , Окрасить [Фотографии] Colorize [with Colormap] , Окрасить [с помощью Colormap] Colorize Lineart [Auto-Fill] , Окрасить линейную линию [Автозаполнение]. Colorize Lineart [Propagation] , Окрасить линейную линию [Распространение] Colorize Lineart [Smart Coloring] , Окрасить линейный [Умная раскраска] Colorize Mode , Режим окрашивания Colorized Image (1 Layer) , Цветное изображение (1 слой) Colormap Type , Цветовое изображение Colors , Цвета Colors A , Цвета А Colors B , Цвета В Colors Only , Только цвета Colors Only (1 Layer) , Только цвета (1 слой) Colors to Layers , Цвета на слои Colorspace , Цветовое пространство Colour , Цвет Colour Channels , Цветовые каналы Colour Model , Цветная модель Colour Smoothing , Сглаживание цвета Colour Space Mode , Цветовой режим Column by Column , Колонки за колонками Comic Style , Комический стиль Comix Colors , Смешивание цветов Components , Компоненты Composed Layers , Составные слои Compress Highlights , Основные моменты компресса Compression Blur , Компрессионное размытие Compression Filter , Компрессионный фильтр Computation Mode , Режим вычисления Cone , Конус Conflict 01 , Конфликт 01 Conformal Maps , Конформные карты Connect-Four , Коннект-Четыре Connectivity , Связь Connectors Centering , Разъемы Центрирование Connectors Variability , Разъемы Переменчивость Constrain Image Size , Размер изображения деформации Constrain Values , Значения деформации Constrained Sharpen , Ограниченный Шарпен Constraint Radius , Радиус ограничения Continuous Droste , Непрерывная дроста Contour Coherence , Согласованность контура Contour Detection (%) , Обнаружение контура (%) Contour Normalization , Нормализация контура Contour Precision , Точность контура Contour Threshold , Порог контура Contour Threshold (%) , Порог контура (%) Contours , Контуры Contours + Flocon/Snowflake , Контуры + флокон/снежинка Contours Recursion , Контуры Рекурсия Contrail 35 , Контраил 35 Contrast , Контраст Contrast (%) , Контраст (%) Contrast Smoothness , Контрастная гладкость Contrast Swiss Mask , Контрастная швейцарская маска Contrast with Highlights Protection , Контраст с защитой от бликов Contrasty Afternoon , Контрастный полдень Contrasty Green , Контрастный зеленый Contributors , Авторы Control Point 1 , Контрольная точка 1 Control Point 2 , Контрольная точка 2 Control Point 3 , Контрольная точка 3 Control Point 4 , Контрольная точка 4 Control Point 5 , Контрольная точка 5 Control Point 6 , Контрольная точка 6 Convolve , Волна Cool , Крутой Cool (256) , Круто (256) Cool / Warm , Прохладно / тепло Copper , Медь Corner Brightness , Яркость углов Correlated Channels , Связанные с Корреспондентами каналы Counter Clockwise , Против часовой стрелки Course 4 , Курс 4 Cracks , Трещины Crease , Создать Creative Pack (33) , Творческий пакет (33) Crip Winter , Крип-зима Crisp Romance , хрустящий роман Crisp Warm , Хрустящее тепло Criterion , Критерий Crop , Обрезок Crop (%) , Растениеводство (%) Cross Process CP 130 , Кросс-процесс CP 130 Cross Process CP 14 , Кросс-процесс CP 14 Cross Process CP 15 , Кросс-процесс CP 15 Cross Process CP 16 , Кросс-процесс CP 16 Cross Process CP 18 , Кросс-процесс CP 18 Cross Process CP 3 , Кросс-процесс CP 3 Cross Process CP 4 , Кросс-процесс CP 4 Cross Process CP 6 , Кросс-процесс CP 6 Cross-Hatch Amount , Крестообразный люк Crossed , Пересечённый Crosses 1 , Кресты 1 Crosses 2 , Кресты 2 Crosshair , Перекрестие CRT Sub-Pixels , ЭЛТ субпиксели Crystal , Кристалл Crystal Background , Хрустальный фон Cube (256) , Куб (256) Cubicle 99 , Кубик 99 Cubism , Кубизм Cubism on Color Abstraction , Кубизм на цветной абстракции Cup , Кубок Cupid , Купидон Curvature , Кривая Curvature Shadow , Тень кривизны Curve Amount , Сумма кривой Curve Angle , Угол кривизны Curve Length , Длина кривой Curved , Изогнутый Curved Stroke , изогнутый ход Curves , Кривые Curves Previously Defined , Кривые Предыдущие заданные Custom , Пользовательский Custom Code [Global] , Таможенный код [Global] Custom Code [Local] , Пользовательский код [Местный] Custom Correction Map , Карта пользовательской коррекции Custom Depth Correction , Пользовательская коррекция глубины Custom Depth Maps Stream , Изготовленный на заказ поток карт глубины Custom Dictionary , Пользовательский словарь Custom Filter Code , Пользовательский код фильтрации Custom Formula , Индивидуальная формула Custom Kernel , Пользовательское ядро Custom Layers , Клиентские слои Custom Layout , Настраиваемый макет Custom Style (Bottom Layer) , Пользовательский стиль (нижний слой) Custom Style (Top Layer) , Пользовательский стиль (верхний слой) Customize CLUT , Настроить CLUT Cut , Вырезать Cut & Normalize , Вырезать и нормализовать Cutout , Вырезка Cyan Factor , фактор циана Cyan Shift , голубой смещение Cyan Smoothness , Гладкость голубого цвета Cycle Layers , Слои велосипеда Cycles , Велосипеды Cylinder , Цилиндр D and O 1 , D и O 1 Damping per Octave , Демпфирование на октаву Dark Motive , Темный мотив Dark Blues in Sunlight , Темно-синий при солнечном свете Dark Boost , Темный удар Dark Color , Темный цвет Dark Edges , Темные края Dark Green 02 , Темно-зеленый 02 Dark Green 1 , Темно-зеленый 1 Dark Grey , Темно-серый Dark Length , Темная длина Dark Motive , Темный мотив Dark Pixels , Темные пиксели Dark Place 01 , Темное место 01 Dark Screen , Темный экран Dark Sky , Темное небо Dark Walls , Темные стены Darker , Темнее Darkness , Темнота Darkness Level , Уровень темноты Date 39 , Дата 39 David , Дэвид Day for Night , День на ночь Daylight Scene , Сцена дневного света DCP Dehaze , ДСР Дехаз De-Anaglyph , Де-анаглиф Debug Font Size , Размер отладочного шрифта Decagon , Декагон Decompose , Разложить Decompose Channels , Разлагать каналы Decoration , Украшение Decreasing , Уменьшение Deep , Глубокий Deep Blue , Голубой цвет Deep Dark Warm , Глубокое темное тепло Deep High Contrast , Глубокий высокий контраст Deep Warm Fade , Глубокое теплое угасание Default , По умолчанию Defects Contrast , Контраст дефектов Defects Density , Плотность дефектов Defects Size , Дефекты Размеры Defects Smoothness , Дефекты Гладкость Deform , Деформировать Delaunay-Oriented , Делоне-Ориентированный Delaunay: Portrait De Metzinger , Дело в том, что портрет Де Метцингера... Delaunay: Windows Open Simultaneously , Дело в том, что Windows открыта одновременно. Delete Layer Source , Источник удалить слой Delicatessen , Деликатесы Denim , Джинсовая ткань Denoise Simple 40 , Денуаза Простое 40 Density , Плотность Density (%) , Плотность (%) Depth , Глубина Depth Fade In Frames , Глубина затухания в кадрах Depth Fade Out Frames , Глубина затухания кадров Depth Field Control , Контроль глубины поля Depth Map , Глубина Карта Depth Map Construction , Карта глубины Строительство Depth Map Only , Только карта глубины Depth Map Reconstruction , Карта глубины Реконструкция Depth Maps Only , Только Карты глубины Depth-Of-Field Type , Тип глубины поля Desaturate (%) , Натуральный (%) Desaturate Norm , Пониженная норма Descent Method , Метод спуска Descreen , Экран Desert Gold 37 , Пустыня Золото 37 Despeckle , Деспекл Destination (%) , Назначение (%) Destination X-Tiles , Пункт назначения X-Плитки Destination Y-Tiles , Пункт назначения Y-панели Detail , Подробности Detail Level , Уровень детализации Detail Reconstruction Detection , Обнаружение деталей реконструкции Detail Reconstruction Smoothness , Детали Реконструкция Гладкость Detail Reconstruction Strength , Детали Реконструкционная прочность Detail Reconstruction Style , Детали Стиль реконструкции Detail Scale , Шкала деталей Detail Strength , Прочность деталей Details , Подробности Details Amount , Детали Количество Details Equalizer , Детали эквалайзера Details Scale , Шкала деталей Details Smoothness , Детали Гладкость Details Strength (%) , Детали Прочность (%) Detect Skin , Обнаружить кожу Deviation , Отклонение Diamond , Алмазный Diamond (Inv.) , Алмаз (инв.) Diamonds , Бриллианты Diamonds (Outline) , Бриллианты (Контур) Dices , Цифры Dices with Colored Numbers , Кубики с цветными цифрами Dices with Colored Sides , Кубики с цветными сторонами Difference , Разница Difference Mixing , Смешивание различий Difference of Gaussians , Отличие гауссиан Different Axis , Различная ось Diffuse (%) , Диффузный (%) Diffuse Shadow , Диффузная Тень Diffusion , Диффузия Diffusion Tensors , Диффузионные тензоры Diffusivity , Диффузитивность Digits , Цифры Dilatation , Дилатация Dilate , Расшифровать Dilation , Дилатация Dilation - Original , Дилатация - Оригинал Dilation / Erosion , дилатация / эрозия Dimension , Измерение Dimension [Diff] , Измерение [Дифф] Dimension A , Измерение А Dimensions (%) , Размеры (%) Dimensions Pixels , Размеры Пиксели Dipole: 1/(4*z^2-1) , Диполь: 1/(4*z^2-1) Direct , Прямой Direction , Направление Directions 23 , Указания 23 Dirichlet , Дирихлет Dirty , Грязный Disable , Отключить Disabled , Инвалид Discard Contour Guides , Направляющие контура отбрасывания Discard Transparency , Прозрачность отбрасывания Disco , Дискотека Display , Показать Display Blob Controls , Управление блоками дисплея Display Color Axes , Цветные оси дисплея Display Contours , Контуры дисплея Display Coordinates , Координаты отображения Display Coordinates on Preview Window , Координаты отображения в окне предварительного просмотра Display Debug Info on Preview , Отображение отладочной информации на предварительном просмотре Distance , Расстояние Distance (Fast) , Расстояние (Быстро) Distance Transform , Преобразование расстояния Distort Lens , Искажающий объектив Distortion Factor , Коэффициент искажения Distortion Surface Angle , Искажение Угол поверхности Distortion Surface Position , Положение поверхности искажения Disturbance Scale-By-Factor , Шкала-фактор возмущения Disturbance X , Нарушение Х Disturbance Y , Нарушение Y Dither Output , Либо выход Dithering , Сглаживание Divide , Разделить Django 25 , Джанго 25 Dodge Blur , Додж Пятно Dodge Strength , Прочность при уклоне DOF Analyzer , анализатор DOF Dog , Собака Domingo 145 , Доминго 145 Don't Sort , Не сортируй. Doodle , Дудл Dot Size , Размер точки Dots , Точки Download External Data , Скачать внешние данные Dragon Curve , Кривая дракона Dragonfly , Стрекоза Drawing Mode , Режим рисования Dream , Мечтать Dream 1 , Мечта 1 Dream 85 , Мечта 85 Dream Smoothing , Сглаживание снов Drop Blues , Капля блюза Drop Green Tint 14 , Зеленый оттенок 14 Drop Shadow , Падение Тени Drop Water , Каплевая вода Duck , Утка Duplicate Bottom , Дублированное дно Duplicate Horizontal , Дублировать горизонтальный Duplicate Left , Дублировать слева Duplicate Right , Дублировать право Duplicate Top , Дублировать Топ Duplicate Vertical , Дублирующийся Вертикаль Duration , Продолжительность Dynamic Range Increase , Динамическое увеличение диапазона Eagle , Орел Earth , Земля Earth Tone Boost , Ускорение земных тонов Easy Skin Retouch , Легкий возврат кожи Edge Antialiasing , Сглаживание краев Edge Attenuation , Затухание краев Edge Behavior X , Поведение Крайнего Севера X Edge Behavior Y , Поведение края Y Edge Detect Includes Chroma , Обнаружение краев включает в себя хрому Edge Fidelity , Верность краев Edge Influence , Влияние краев Edge Mask , Крайняя маска Edge Sensitivity , Чувствительность к краям Edge Shade , Оттенок края Edge Simplicity , Простота края Edge Smoothness , Гладкость краев Edge Thickness , Толщина края Edge Threshold , Порог Кромки Edge Threshold (%) , Порог по краям (%) Edges , Края Edges (%) , Края (%) Edges [Animated] , Края [анимированные] Edges Offsets , Смещения по краям Edges on Fire , Края в огне Edges-0.5 (beware: Memory-Consuming!) , Края - 0,5 (берегись: Память-Потребитель!) Edges-1 (beware: Memory-Consuming!) , Края-1 (остерегайся: Память-Потребляющая!) Edges-2 (beware: Memory-Consuming!) , Края-2 (остерегайся: Память-Потребляющая!) Edgy Ember , Эдди Эмбер Effect Strength , Прочность эффекта Effect X-Axis Scaling , Эффект масштабирования по оси X Effect Y-Axis Scaling , Эффект масштабирования по оси Y Eight Layers , Восемь слоев Eight Threads , Восемь Нитей Elegance 38 , Элегантность 38 Elephant , Слон Elevation , Возвышение Elevation (%) , Высота (%) Ellipse Painting , эллипсовая живопись Ellipse Ratio , коэффициент Эллипса Ellipsionism , Эллипсионизм Ellipsionism Opacity , Эллипсионизм Непрозрачность Ellipsoid , Эллипсоид Emboss , Эмбосс Enable Antialiasing , Включить сглаживание Enable Interpolated Motion , Включить интерполированное движение Enable Morphology , Морфология благоприятствования Enable Paintstroke , Включить живописный мазок Enable Segmentation , Включить сегментацию Enchanted , Зачарованный End Color , Цвет конца End Frame Number , Номер конечной рамы End of Mid-Tones , Конец средних тонов End Point Connectivity , Связь с конечной точкой End Point Rate (%) , Ставка конечной точки (%) Ending Angle , Конечный угол Ending Color , Заключительный цвет Ending Feathering , Завершающее перо Ending Point (%) , Конечная точка (%) Ending Scale (%) , Шкала завершения (%) Ending Value , Конечная стоимость Ending X-Centering , Конец Х-Центра Ending Y-Centering , Конец Y-центра Engrave , Гравюра Enhance Detail , Увеличить детализацию Enhance Details , Подробнее Equalization , Уравнивание Equalization (%) , Уравнивание (%) Equalize , Уравнивать Equalize and Normalize , Уравнять и нормализовать Equalize at Each Step , Уравнивать на каждом этапе Equalize HSI-HSL-HSV , Уравнивать HSI-HSL-HSV Equalize HSV , Уравнивать HSV Equalize Light , Выравнивать свет Equalize Local Histograms , Уравнять местные гистограммы Equalize Shadow , Уравнять Тень Equation Plot [Parametric] , Слот уравнения [Параметрический] Equation Plot [Y=f(X)] , Участок уравнения [Y=f(X)] Equirectangular to Nadir-Zenith , Прямоугольный к Надир-Зениту. Eric Ellerbrock (14) , Эрик Эллерброк (14) Erosion , Эрозия Erosion / Dilation , эрозия / дилатация Etch Tones , траурные тона Eterna for Flog , Этерна для Флога Euclidean , Евклидан Euclidean - Polar , евклидов - полярный Exclusion , Исключение Exp(z) , Эксп(z) Expand , Развернуть Expand Background Reconstruction , Расширение Реконструкция фона Expand Shadows , Расширять Тени Expand Size , Увеличить размер Expanding Mirrors , Расширяющиеся зеркала Expired (fade) , Просрочено (исчезает) Expired (polaroid) , Истекший (поляроид) Expired 69 , истекло 69 Exponent , Экспонент Exponent (Imaginary) , Экспонент (Воображаемый) Exponent (Real) , Экспонент (Реальный) Exponential , Экспоненциальный Export RGB-565 File , Экспорт RGB-565 Файл Exposure , Выставка Expression , Выражение Extend 1px , Увеличить 1px External Transparency , Внешняя прозрачность Extra Smooth , Extra Smooth Extract Foreground [Interactive] , Извлечь передний план [Интерактивный] Extract Objects , Извлечь предметы Extrapolate Color Spots on Transparent Top Layer , Экстраполированные пятна цвета на прозрачном верхнем слое Extrapolate Colors As , Экстраполированные цвета как Extrapolated Colors + Lineart , Экстраполированные цвета + линейный Extreme , Экстрим Factor , Фактор Fade , Угасать Fade End , Затухающий конец Fade End (%) , Угасание (%) Fade Layers , Угасающие слои Fade Start , Затухающий старт Fade Start (%) , Затухающий старт (%) Fade to Green , Становиться зелёным Faded , Выцветший Faded (alt) , Выцветший (alt) Faded (analog) , Выцветший (аналоговый) Faded (extreme) , Выцветший (крайний) Faded (vivid) , Выцветший (яркий) Faded 47 , Выцветшие 47 Faded Green , Выцветший зеленый Faded Look , Выцветший вид Faded Print , Выцветшая печать Faded Retro 01 , Выцветший ретро 01 Faded Retro 02 , Выцветший ретро 02 Fading , Увядающий Fading Shape , Затухающая форма Fall Colors , Осенние цвета Far Point Deviation , Девиация дальних точек Fast , Быстрый Fast (Approx.) , Быстро и №40; Приблизительно и №41; Fast (Low Precision) Preview , Быстрый (низкая точность) Предварительный просмотр Fast Approximation , Быстрое приближение Fast Blend , Быстрое смешивание Fast Blend Preview , Предварительный просмотр быстрого смешивания Fast Recovery , Быстрое восстановление Fast Resize , Быстрый размер Faux Infrared , Инфракрасный фальшивый Feathering , Перо Feature Analyzer Smoothness , Гладкость анализатора функций Feature Analyzer Threshold , Пороговый анализатор характеристик Felt Pen , Фелт-Рен FFT Preview , Предварительный просмотр БПФ Fibers , Волокна Fibers Amplitude , Амплитуда волокна Fibers Smoothness , Гладкость волокон Fibrousness , Фиброзность Fidelity Chromaticity , Верность Хроматичность Fidelity Smoothness (Coarsest) , Гладкость верности (грубость) Fidelity Smoothness (Finest) , Верность Гладкость (Лучшая) Fidelity to Target (Coarsest) , Верность цели (Грубейшая) Fidelity to Target (Finest) , Верность цели (Лучшая) Filename , Фильм Fill Holes , Отверстия для заполнения Fill Holes % , Заполнение отверстий % Fill Transparent Holes , Заполнить Прозрачные отверстия Filled , Заполнено Filled Circles , Заполненные круги Filling , Заполнение Film 0987 , Фильм 0987 Film 9879 , Фильм 9879 Film Highlight Contrast , Фильм Контрастное выделение Film Print 01 , Фильм Печать 01 Film Print 02 , Фильм Печать 02 Filmic , Фильм Filter Design , Дизайн фильтра Final Image , Окончательное изображение Fine , Хорошо Fine 2 , Мелкий 2 Fine Details Smoothness , Тонкие детали Гладкость Fine Details Threshold , Порог мелкой детали Fine Noise , мелкий шум Fine Scale , Тонкая шкала Finest (slower) , Лучший (медленнее) Finger Paint , Краска для пальцев Finger Size , Размер пальца Fire Effect , Эффект пожара Fireworks , Фейерверки First , Первый First Color , Первый цвет First Frame , Первый кадр First Offset , Первое смещение First Radius , Первый Радиус First Size , Первый размер Fish-Eye , Рыбий глаз Fish-Eye Effect , эффект "рыбий глаз Fitting Function , Функция установки Five Layers , Пять слоев Flag , Флаг Flag (256) , Флаг (256) Flat , Квартира Flat 30 , Квартира 30 Flat Color , Плоский цвет Flat Regions Removal , Удаление плоских регионов Flat-Shaded , Плоская штриховка Flatness , Плоскостность Flavin , Флавин Flip , Флип Flip & Rotate Blocs , Флип и поворотные блоки Flip Cross-Hatch , Флип-кросс-люк Flip Left / Right , Перевернуть влево/вправо Flip Left/Right , Перевернуть влево/вправо Flip The Pattern , Перевернуть схему Flip Tolerance , Толерантность к переворачиванию Flower , Цветок Focale , Фокал Foggy Night , Туманная ночь Folder Name , Имя папки Folger 50 , Фолджер 50 Font Colors , Цвета шрифта Font Height (px) , Высота шрифта (px) Force Gray , Серый Форс Force Re-Download from Scratch , Принудительная перезагрузка из Scratch Force Tiles to Have Same Size , Заставить плитку иметь тот же размер Force Transparency , Сила Транспарентность Foreground Color , Цвет переднего плана Form , Форма Formula , Формула Forward , Форвард Forward Horizontal , Форвард Горизонтальный Forward Horizontal , Форвард Горизонтальный Forward Vertical , Форвард Вертикаль Four Layers , Четыре слоя Four Threads , Четыре нити Fourier Analysis , Фурье-анализ Fourier Filtering , Фурье-фильтрация Fourier Transform , преобразование Фурье Fourier Watermark , Фурье Водяной знак Fractal Noise , Фрактальный шум Fractal Points , Фрактальные точки Fractal Set , Набор фракталов Fractal Whirl , Фрактальный вихрь Fractalize , Фрактализовать Fractured Clouds , Облака с трещинами Fragment Blur , Фрагмент Пятна Frame (px) , Фрейм (px) Frame [Blur] , Кадр [Пятно] Frame [Cube] , Кадр [Куб] Frame [Fuzzy] , Фрейм [Нечеткий] Frame [Mirror] , Фрейм [Зеркало] Frame [Painting] , Рамка [Живопись] Frame [Pattern] , Кадр [Узор] Frame [Regular] , Рамка [Обычная] Frame [Round] , Кадр [Круглый] Frame [Smooth] , Фрейм [Гладкий] Frame as a New Layer , Каркас как новый слой Frame Color , Цвет рамки Frame Files Format , Рамка Файлы Формат Frame Format , Формат кадра Frame Size , Размер кадра Frame Skip , Скип рамы Frame Type , Тип кадра Frame Width , Ширина кадра Frames , Фреймы Frames Offset , Смещение рамки Freaky B&W , Причудливый чайник и бар Freaky Details , Причудливые подробности Freeze , Заморозить French Comedy , Французская комедия Frequency , Частота Frequency (%) , Частота (%) Frequency Analyzer , Анализатор частоты Frequency Range , Диапазон частот Freqy Pattern , фреки-маскарад Friends Hall of Fame , Зал славы друзей From Input , С входа From Reference Color , С эталонного цвета Frosted , Морозный Frosted Beach Picnic , Морозный пляжный пикник Fruits , Фрукты Fuji 160C , Фудзи 160С Fuji 160C + , Фудзи 160С + Fuji 160C ++ , Фудзи 160С ++ Fuji 160C - , Фудзи 160С - Fuji 3510 (Constlclip) , Фудзи 3510 (Констлэп) Fuji 3510 (Constlmap) , Фудзи 3510 (Констлмап) Fuji 3510 (Cuspclip) , Фудзи 3510 (Cuspclip) Fuji 3513 (Constlclip) , Фудзи 3513 (Констлэп) Fuji 3513 (Constlmap) , Фудзи 3513 (Констлмап) Fuji 3513 (Cuspclip) , Фудзи 3513 (Cuspclip) Fuji 400H , Фудзи 400Н Fuji 400H + , Фудзи 400H + Fuji 400H ++ , Фудзи 400H ++ Fuji 400H - , Фудзи 400Н - Fuji 800Z , Фудзи 800З Fuji 800Z + , Фудзи 800Z + Fuji 800Z ++ , Фудзи 800Z ++ Fuji 800Z - , Фудзи 800З - Fuji Astia 100F , Фудзи Астия 100F Fuji FP 100C , Фудзи FP 100C Fuji FP-100c +++ , Fuji FP-100c + +++ Fuji FP-100c Negative , Fuji FP-100c Отрицательный Fuji FP-100c Negative + , Fuji FP-100c Отрицательный + Fuji FP-100c Negative ++ , Fuji FP-100c Отрицательный ++ Fuji FP-100c Negative +++ , Fuji FP-100c Отрицательный +++ Fuji FP-100c Negative ++a , Fuji FP-100c Отрицательный ++a Fuji FP-100c Negative - , Fuji FP-100c Отрицательно - Fuji FP-100c Negative -- , Fuji FP-100c Отрицательно... Fuji FP-3000b + , Фудзи FP-3000b + Fuji FP-3000b +++ , Fuji FP-3000b + +++ Fuji FP-3000b Negative , Фудзи FP-3000b Отрицательный Fuji FP-3000b Negative + , Фудзи FP-3000b Отрицательный + Fuji FP-3000b Negative ++ , Fuji FP-3000b Отрицательный ++ Fuji FP-3000b Negative +++ , Fuji FP-3000b Отрицательный +++ Fuji FP-3000b Negative - , Fuji FP-3000b Отрицательно - Fuji FP-3000b Negative -- , Fuji FP-3000b Отрицательно... Fuji FP-3000b Negative Early , Фудзи FP-3000b Отрицательный Ранний Fuji HDR , ГДР Фудзи Fuji Ilford Delta 3200 , Дельта Фудзи Ильфорда 3200 Fuji Ilford Delta 3200 + , Фудзи Ильфорд Дельта 3200 + Fuji Ilford Delta 3200 ++ , Фудзи Ильфорд Дельта 3200 ++ Fuji Ilford Delta 3200 - , Дельта Фудзи Ильфорда 3200 - Fuji Ilford HP5 , Фудзи Илфорд HP5 Fuji Ilford HP5 + , Фудзи Илфорд HP5 + Fuji Ilford HP5 ++ , Фудзи Илфорд HP5 ++ Fuji Ilford HP5 - , Фудзи Илфорд HP5 - Fuji Neopan 1600 , Фудзи-неопан 1600 Fuji Neopan 1600 + , Фудзи Неопан 1600 + Fuji Neopan 1600 ++ , Фудзи Неопан 1600 ++ Fuji Neopan 1600 - , Фудзи Неопан 1600 - Fuji Neopan Acros 100 , Фудзи Неопан Акрос 100 Fuji Sensia 100 , Фудзи Сенсия 100 Fuji Superia 100 , Фудзи Супер 100 Fuji Superia 100 + , Фудзи Суперия 100 + Fuji Superia 100 ++ , Фудзи Суперия 100 ++ Fuji Superia 1600 , Фудзи Суперия 1600 Fuji Superia 1600 + , Фудзи Суперия 1600 + Fuji Superia 1600 ++ , Фудзи Суперия 1600 ++ Fuji Superia 1600 - , Фудзи Суперия 1600 - Fuji Superia 200 , Фудзи Суперия 200 Fuji Superia 400 , Фудзи Суперия 400 Fuji Superia 400 + , Фудзи Суперия 400 + Fuji Superia 400 - , Фудзи Суперия 400 - Fuji Superia 800 , Фудзи Суперия 800 Fuji Superia 800 + , Фудзи Суперия 800 + Fuji Superia Reala 100 , Фудзи Суперия Реала 100 Fuji Velvia 50 , Фудзи-Вельвия 50 Full , Полный текст Full (Allows Multi-Layers) , Полный (позволяет многослойность) Full (Slower) , Полный (Медленнее) Full Bottom/top , Полное Нижнее/Наверху Full Colors , Полные цвета Full HD Frame Packing , Упаковка Full HD кадров Full Layer Stack -Slow!- , Полнослойный стек - Медленно! Full Side by Side Keep Uncompressed , Полностью Бок о бок Держите без компрессии Full Side by Side Keep Width , Полная ширина бок о бок держать Full Side by Uncompressed , Полностью без компрессии Futuristic Bleak 1 , футуристическая утечка 1 Futuristic Bleak 2 , футуристическая утечка 2 Futuristic Bleak 3 , футуристическая утечка 3 Futuristic Bleak 4 , футуристическая утечка 4 G'MIC Operator , G'MIC Оператор G/M Smoothness , Гладкость Ж/М Gain , Получить Games & Demos , Игры и демо-версии Gamma , Гамма Gamma (%) , Гамма (%) Gamma Balance , Гамма-баланс Gamma Compensation , Гамма компенсация Gamma Equalizer , Гамма эквалайзер Gaussian , гауссов Generate Random-Colors Layer , Генерация слоя случайных цветов Generic Fuji Astia 100 , Дженерик Фудзи Астия 100 Generic Fuji Provia 100 , Дженерик Fuji Provia 100 Generic Fuji Velvia 100 , Дженерик Фудзи Вельвия 100 Generic Kodachrome 64 , Дженерик Кодахром 64 Generic Kodak Ektachrome 100 VS , Дженерик Кодак Эктахром 100 ВС Generic Skin Structure , Общая структура кожи Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Нежный режим (переопределяет Минимальную яркость и Минимун Красный: Синий Соотношение) Geometry , Геометрия Global , Глобальный Global Mapping , Глобальное картирование Gmicky & Wilber , Гмики и Вилбер Gmicky & Wilber (by Mahvin) , Gmicky & Wilber (по Махвину) Gmicky (by Deevad) , Гмики (по Диваду) Gmicky (by Mahvin) , Гмики (по Махвину) Gmicky (Deevad) , Гмики (Дивад) Gmicky (Mahvin) , Гмики (Махвин) Gmicky - Roddy , Гмики - Родди Going for a Walk , Прогулка Gold , Золотой Golden , Золотой Golden (bright) , Золотой (яркий) Golden (fade) , Золотой (исчезает) Golden (mono) , Золотой (моно) Golden (vibrant) , Золотой (яркий) Golden Gate , Золотые ворота Golden Night Softner 43 , Золотая ночь софтнер 43 Golden Sony 37 , Золотая Сони 37 GoldFX - Bright Spring Breeze , GoldFX - Светлый весенний бриз GoldFX - Bright Summer Heat , GoldFX - Яркий летний зной GoldFX - Hot Summer Heat , GoldFX - Горячая летняя жара GoldFX - Perfect Sunset 01min , GoldFX - Идеальный Закат 01 мин. GoldFX - Perfect Sunset 05min , GoldFX - Идеальный закат 05 минут GoldFX - Perfect Sunset 10min , GoldFX - Идеальный закат 10 мин. GoldFX - Spring Breeze , GoldFX - Весенний бриз GoldFX - Summer Heat , GoldFX - Летняя жара Good Morning , Доброе утро Gouraud , Гуро Gradient , Градиент Gradient [Corners] , Градиент [Углы] Gradient [Custom Shape] , Градиент [Custom Shape] Gradient [from Line] , Градиент [от линии] Gradient [Linear] , Градиент [Линейный] Gradient [Radial] , Градиент [радиальный] Gradient [Random] , Градиент [Случайность] Gradient Norm , Градиентная норма Gradient Preset , Градиентный подарок Gradient RGB , Градиент RGB Gradient Smoothness , Гладкость градиента Gradient Values , Градиентные значения Grain , Зерно Grain (Highlights) , Зерно (Highlights) Grain (Midtones) , Зерно (Мидтоны) Grain (Shadows) , Зерно (Тени) Grain Extract , Экстракт зерна Grain Merge , Зерновое слияние Grain Only , Только зерно Grain Scale , Зерновая шкала Grain Tone Fading , Затухание зерновых тонов Grain Type , Тип зерна Granularity , Зернистость Graphic Boost , Графическое ускорение Graphic Colours , Графические цвета Graphic Novel , Графический роман Graphix Colors , графические цвета Grayscale , Шкала серого Greece , Греция Green , Зеленый Green 15 , Зелёный 15 Green 2025 , Зелёный 2025 Green Action , Зеленые действия Green Afternoon , Зелёный День Green Blues , Зелёный блюз Green Conflict , Зелёный конфликт Green Day 01 , Зеленый день 01 Green Day 02 , Зелёный день 02 Green Factor , Зелёный фактор Green G09 , Зеленый G09 Green Indoor , Зелёный интерьер Green Level , Зелёный уровень Green Light , Зелёный свет Green Mono , Зелёный Моно Green Rotations , Зеленые Вращения Green Shift , Зеленая смена Green Smoothness , Зеленая гладкость Green Wavelength , Зеленая длина волны Green Yellow , Зелёный жёлтый Green-Red , Зелено-красный Greenish Contrasty , Зеленоватая контрастность Greenish Fade , Зеленовато-синий Greenish Fade 1 , Зеленовато-синий 1 Grey , Серый Greyscale , Шкала серого Grid , Сетка Grid [Cartesian] , Сетка [Картезиан] Grid [Hexagonal] , Сетка [Гексагональная] Grid [Triangular] , Сетка [Треугольная] Grid Divisions , Решётчатые дивизионы Grid Smoothing , сглаживание сетки Grid Width , Ширина сетки Grow Alpha , Вырасти Альфа Guide As , Путеводитель As Guide Mix , Гид-микс Guide Recovery , Руководство по восстановлению Gum Leaf , лист десны Gyroid , Гироид Hackmanite , Хакманит Hair Locks , Замочки для волос HaldCLUT Filename , Фильм HaldCLUT Half Bottom/top , Половина Нижнее/Наверху Half Side by Side , Половина Бок о бок Halftone , Халфтон Halftone Shapes , формы полутонов Hanoi Tower , Ханойская башня Happyness 133 , Счастье 133 Hard Dark , Твёрдая Тьма Hard Light , Жесткий свет Hard Mix , Твердая смесь Hard Sketch , Твердый набросок Hard Teal Orange , Твердый апельсин тела Harsh Day , трудный день Harsh Sunset , суровый закат HDR Effect (Tone Map) , HDR-эффект (тоновая карта) Heart , Сердце Hearts , Сердца Hearts (Outline) , Сердце (набросок) Hedcut (Experimental) , Хедкут (экспериментальный) Height , Высота Height (%) , Высота (%) Heulandite , Хеуландит Hexagon , Шестигранник Hexagonal , Гексагональ Hiddenite , Скрытый сайт High , Высокий High (Slower) , Высоко (Медленнее) High Frequency , Высокая частота High Frequency Layer , Высокочастотный слой High Key , Высокий Ключ High Pass , Высокий перевал High Quality , Высокое качество High Scale , Высокий масштаб High Speed , Высокая скорость High Value , Высокая ценность Higher Mask Threshold (%) , Порог высшей маски (%) Highlight , Выделить Highlight (%) , Выделите (%) Highlight Bloom , Выделите Блум Highlights , Основные моменты Highlights Abstraction , Основные моменты Абстракция Highlights Color Intensity , Выделяет Интенсивность цвета Highlights Hue , Основные моменты Оттенок Highlights Lightness , Выделяет Легкость Highlights Protection , Основные моменты Защита Highlights Selection , Основные моменты Выбор Highlights Threshold , Основные моменты Порог Hilutite , Илутита Histogram , Гистограмма Histogram Analysis , Анализ гистограммы Histogram Transfer , Передача гистограммы Hokusai: The Great Wave , Хокусай: Великая волна Homogeneity , Однородность Hong Kong , Гонконг Hope Poster , Плакат надежды Horisontal Length , Горизонтальная длина Horizon Leveling (deg) , Выравнивание горизонтов (градусов) Horizontal , Горизонтальный Horizontal (%) , горизонтальный (%) Horizontal Amount , Горизонтальная высота Horizontal Array , горизонтальный массив Horizontal Blur , горизонтальное пятно Horizontal Length , Горизонтальная длина Horizontal Size (%) , Горизонтальный размер (%) Horizontal Stripes , горизонтальные полосы Horizontal Tiles , горизонтальная плитка Horizontal Warp Only , Только искривление по горизонтали Horror Blue , Ужасная синева Hot , Горячий сайт Hot (256) , Горячий (256) Hough Sketch , Хоф Скетч Hough Transform , преобразование Хоуфа House , Дом Householder , Домовладелец HSI [all] , HSI [все] HSI [Intensity] , HSI [Интенсивность] HSL [all] , HSL [все] HSL [Lightness] , HSL [Легкость] HSL Adjustment , регулировка HSL HSV [all] , HSV [все] HSV [Saturation] , HSV [Насыщенность] HSV [Value] , HSV [Значение] HSV Select , HSV Выбор Hue , Оттенок Hue (%) , Оттенок (%) Hue Band , группа оттенков Hue Factor , фактор оттенка Hue Lighten-Darken , Хью Лайтен-Даркен Hue Max (%) , Максимальный оттенок (%) Hue Min (%) , Хью Мин (%) Hue Offset , смещение оттенка Hue Range , диапазон оттенков Hue Shift , сдвиг оттенков Hue Smoothness , Гладкость оттенков Human 2 , Человек 2 Human 1 , Человек 1 Human 2 , Человек 2 Hybrid Median - Medium Speed Softest Output , Гибридная Медиана - Средняя скорость мягкого выхода Hyla 68 , Хила 68 Hyper Droste , гипердроста Hypersthene , Гиперстен Hypnosis , Гипноз Iain Noise Reduction 2019 , Снижение уровня шума 2019 Identity , Идентификация Ignore , Игнорировать Ignore Current Aspect , Игнорировать текущий аспект Ilford Delta 100 , Дельта Ильфорда 100 Ilford Delta 3200 , Дельта Ильфорда 3200 Ilford Delta 400 , Дельта Ильфорда 400 Ilford FP4 Plus 125 , Илфорд FP4 Plus 125 Ilford HPS 800 , Ильфордская HPS 800 Ilford Pan F Plus 50 , Илфорд Пан Плюс 50 Ilford XP2 , Илфорд XP2 Illuminate 2D Shape , Иллюминат 2D Форма Illumination , Освещение Illustration Look , Иллюстрация Посмотрите Image , Изображение Image + Background , Изображение + фон Image + Colors (2 Layers) , Изображение + цвета (2 слоя) Image + Colors (Multi-Layers) , Изображение + цвета (многослойное) Image Contour Dimensions , Размеры контура изображения Image Smoothness , Гладкость изображения Image to Grab Color from (.Png) , Изображение для захвата цвета из (.Png) Image Weight , Вес изображения Import Data , Импортные данные Import RGB-565 File , Импорт RGB-565 Файл Impulses 5x5 , Импульсы 5х5 Impulses 7x7 , Импульсы 7х7 Impulses 9x9 , Импульсы 9х9 Inch , Дюйм Include Opacity Layer , Включить слой непрозрачности Increasing , Увеличение Indoor Blue , Крытый синий Industrial 33 , Промышленные 33 Influence of Color Samples (%) , Влияние цветных проб (%) Information , Информация Init. Resolution , Инит. Резолюция Init. Type , Инит. Введите . Init. With High Gradients Only , Инит. Только с высокими уклонами Initial Density , Первоначальная плотность Initialization , Инициализация Ink Wash , промывка чернил Inner , Внутренний Inner Fading , Внутреннее затухание Inner Length , Внутренняя длина Inner Radius , Внутренний радиус Inner Radius (%) , Внутренний радиус (%) Inner Shade , Внутренний оттенок Inpaint [Holes] , Покраска [Отверстия] Inpaint [Morphological] , Краска [морфологическая] Inpaint [Multi-Scale] , Покраска [Мульти-шкала] Inpaint [Patch-Based] , Покраска [на основе патча] Inpaint [Transport-Diffusion] , Краска [Транспорт-Диффузия] Input , Вход Input Folder , Входная папка Input Frame Files Name , Имя файла входной кадра Input Guide Color , Цвет руководства по вводу Input Layers , входные слои Input Transparency , Прозрачность ввода Input Type , Тип ввода Insert New CLUT Layer , Вставить новый слой CLUT Inside , Внутри Inside Color , Внутренний цвет Instant [Consumer] (54) , Мгновенный [Потребитель] (54) Instant [Pro] (68) , Мгновенный [Про] (68) Intarsia , Интарсия Intensity , Интенсивность Intensity of Purple Fringe , Интенсивность фиолетовой границы Inter-Frames , Интерфреймы Interlace Horizontal , Горизонтальное сплетение Interp , Интерп Interpolate , Интерполировать Interpolation , Интерполяция Interpolation Type , тип Интерполяции Inverse , Обратный ход Inverse Depth Map , Обратная карта глубины Inverse Radius , обратный радиус Inverse Transform , Обратное преобразование Inversions , Инверсии Invert Background / Foreground , Инвертировать фон / Передний план Invert Blur , Инвертировать Пятно Invert Canvas Colors , Инвертировать цвета холста Invert Colors , Инвертные цвета Invert Image Colors , Инвертировать цвета изображения Invert Luminance , Инвертируйте финансирование Invert Mask , Инвертная маска Inward , Внутренний адрес Isophotes , Изофоты Isotropic , Изотропный Iteration , Итерация Iterations , Итерации J.T. Semple (14) , Джей Ти Семпл (14) Japanese Maple Leaf , Японский кленовый лист Jet (256) , Джет (256) JPEG Artefacts , артефакты JPEG Julia , Джулия Just Peachy , Просто Пиччи K-Factor , K-Фактор Kaleidoscope [Blended] , Калейдоскоп [Смешанный] Kaleidoscope [Polar] , Калейдоскоп [Полярный] Kaleidoscope [Symmetry] , Калейдоскоп [Симметрия] Kandinsky: Squares with Concentric Circles , Кандинский: Квадраты с концентрическими кругами Kandinsky: Yellow-Red-Blue , Кандинский: Желто-красно-синий Keep , Хранить Keep Aspect Ratio , Сохранять соотношение сторон Keep Base Layer as Input Background , Держите базовый уровень в качестве входного фона Keep Borders Square , Площадь Сохранить границы Keep Color Channels , Сохранять цветные каналы Keep Colors , Сохранять цвета Keep Detail , Хранить Подробности Keep Detail Layer Separate , Держите детальный слой отдельно Keep Iterations as Different Layers , Держите итерации как разные слои. Keep Layers Separate , Держите слои отдельно Keep Original Image Size , Сохранить оригинальный размер изображения Keep Original Layer , Сохранить оригинальный слой Keep Tiles Square , Держите Площадь Плитки Keep Transparency in Output , Сохранить прозрачность на выходе Kernel , Кернел Kernel Multiplier , мультипликатор ядра Kernel Type , тип ядра Key Factor , Ключевой фактор Key Frame Rate , Частота смены кадров Key Shift , Смещение клавиш Key Smoothness , Ключевая гладкость Keypoint Influence (%) , Ключевое влияние (%) KH 1 , КН 1 KH 10 , КН 10 KH 2 , КН 2 KH 4 , КН 4 KH 6 , КН 6 KH 7 , КН 7 KH 8 , КН 8 KH 9 , КН 9 Kitaoka Spin Illusion , спиновая иллюзия Китаока Klee: Death and Fire , Клее: Смерть и огонь Klee: In the Style of Kairouan , Клее: В стиле Кайруана... Klee: Oriental Pleasure Garden Anagoria , Клее: Сад восточных удовольствий Анагория Klee: Polyphony 2 , Клее: Полифония 2 Klee: Red Waistcoat , Клее: Красный Жилет Klimt: The Kiss , Климт: Поцелуй Kodak 1-8 , Кодак 1-8 Kodak E-100 GX Ektachrome 100 , Кодак Е-100 GX Эктахром 100 Kodak Ektachrome 100 VS , Кодак Эктахром 100 ВС Kodak Ektar 100 , Кодак Эктар 100 Kodak Elite 100 XPRO , Кодак Элит 100 XPRO Kodak Elite Chrome 200 , Хром Кодак Элит 200 Kodak Elite Chrome 400 , Хром Кодак Элит 400 Kodak Elite Color 200 , Кодак Элит Цвет 200 Kodak Elite Color 400 , Кодак Элит Цвет 400 Kodak Kodachrome 200 , Кодак Кодахром 200 Kodak Kodachrome 25 , Кодак Кодахром 25 Kodak Kodachrome 64 , Кодак Кодахром 64 Kodak Portra 160 , Кодакский портрет 160 Kodak Portra 160 + , Портрет Кодак 160 + Kodak Portra 160 ++ , Портрет Кодак 160 ++ Kodak Portra 160 - , Портрет Кодак 160 - Kodak Portra 160 NC , Кодак Портрет 160 NC Kodak Portra 160 NC + , Портрет Кодак 160 NC + Kodak Portra 160 NC ++ , Портрет Кодак 160 NC ++ Kodak Portra 160 VC , Портрет Кодак 160 ВК Kodak Portra 160 VC + , Портрет Кодак 160 VC + Kodak Portra 400 , портрет Кодак 400 Kodak Portra 400 + , Кодак Портрет 400 + Kodak Portra 400 ++ , Кодак Портрет 400 ++ Kodak Portra 400 - , Портрет Кодак 400 - Kodak Portra 400 NC , Кодак Портрет 400 NC Kodak Portra 400 NC + , Портрет Кодак 400 NC + Kodak Portra 400 NC ++ , Портрет Кодак 400 NC ++ Kodak Portra 400 NC - , Портрет Кодак 400 NC - Kodak Portra 400 UC , Кодак Портрет 400 UC Kodak Portra 400 UC + , Портрет Кодак 400 UC + Kodak Portra 400 UC ++ , Портрет Кодак 400 UC ++ Kodak Portra 400 VC , Портрет Кодак 400 ВК Kodak Portra 400 VC + , Портрет Кодак 400 VC + Kodak Portra 800 , портрет Кодак 800 Kodak Portra 800 + , Портрет Кодак 800 + Kodak Portra 800 ++ , Портрет Кодак 800 ++ Kodak Portra 800 - , Портрет Кодак 800 - Kodak Portra 800 HC , Кодак Портрет 800 HC Kodak T-Max 100 , Кодак Т-Макс 100 Kodak T-Max 3200 , Кодак Т-Макс 3200 Kodak T-MAX 3200 + , Кодак T-MAX 3200 + Kodak T-MAX 3200 ++ , Кодак T-MAX 3200 ++ Kodak T-Max 400 , Кодак Т-Макс 400 Kodak TMAX 3200 , Кодак TMAX 3200 Kodak TMAX 400 , Кодак TMAX 400 Kodak TRI-X 1600 , Кодак ТРИ-X 1600 Kodak TRI-X 400 , Кодак ТРИ-X 400 Kodak TRI-X 400 (alt) , Кодак ТРИ-X 400 (алт.) Kodak TRI-X 400 + , Кодак ТРИ-X 400 + Kodak TRI-X 400 ++ , Кодак TRI-X 400 ++ Kodak TRI-X 400 - , Кодак ТРИ-X 400 - Korben 214 , Корбен 214 Kuwahara , Кувахара Kuwahara on Painting , Кувахара о живописи Kyler Holland (10) , Кайлер Холланд (10) L1-Norm , L1-Норм L2-Norm , L2-Норм Lab , Лаборатория Lab (Chroma Only) , Лаборатория (только хрома) Lab (Distinct) , Лаборатория. Lab (Luma Only) , Лаборатория (только Люма) Lab (Luma/Chroma) , Лаборатория (Luma/Chroma) Lab (Mixed) , Лаборатория (смешанная) Lab [a-Chrominance] , Лаборатория [a-Chrominance] Lab [ab-Chrominances] , Лаборатория [ab-Chrominances] Lab [all] , Лаборатория [все] Lab [b-Chrominance] , Лаборатория [б-хромания] Lab [Lightness] , Лаборатория [Легкость] Landscape , Пейзаж Landscape-1 , Ландшафт-1 Landscape-10 , Ландшафт - 10 Landscape-2 , Пейзаж-2 Landscape-3 , Ландшафт-3 Landscape-4 , Ландшафт-4 Landscape-5 , Ландшафт-5 Landscape-6 , Ландшафт-6 Landscape-7 , Ландшафт-7 Landscape-8 , Ландшафт - 8 Landscape-9 , Ландшафт - 9 Laplacian , Лаплацкий Large , Большой Large Noise , Большой шум Last , Последний Last Frame , Последний кадр Late Afternoon Wanderlust , Поздний полдень Вандерлюст Late Sunset , Поздний закат Lava , Лава Lava Lamp , Лава Лампа Layer , Слой Layer Processing , Обработка слоев Layers to Tiles , Слои к плитке Lch [all] , Лх [все] Leaf , Лист Leaf Color , Цвет листьев Leaf Opacity (%) , Непрозрачность листьев (%) Leak Type , тип утечки Left , Налево Left Foreground , Левый авансцентр Left / Right Blur (%) , Слева/справа Размытие (%) Left and Right Background , Левый и правый фон Left and Right Foreground , Левый и правый передний план Left and Right Image Streams , Потоки левого и правого изображений Left Diagonal Foreground , Левый диагональный передний план Left Foreground , Левый авансцентр Left Position , Левое положение Left Side Orientation , Ориентация на левую сторону Left Slope , Левый Склон Left Stream Only , Только левый поток Lena , Лена Length , Длина Leno , Лено Lenox 340 , Ленокс 340 Lenticular Density LPI , Лентикулярная плотность LPI Lenticular Orientation , линзовидная ориентация Lenticular Print , линзовая печать Level , Уровень Level Frequency , Частота уровней Levels , Уровни Life Giving Tree , Дерево, дающее жизнь Lifestyle & Commercial-1 , Стиль жизни и коммерческий-1 Lifestyle & Commercial-10 , Стиль жизни и коммерческий-10 Lifestyle & Commercial-2 , Стиль жизни и коммерческий-2 Lifestyle & Commercial-3 , Стиль жизни и коммерческий-3 Lifestyle & Commercial-4 , Стиль жизни и коммерческий-4 Lifestyle & Commercial-5 , Стиль жизни и коммерческий-5 Lifestyle & Commercial-6 , Стиль жизни и коммерческий-6 Lifestyle & Commercial-7 , Стиль жизни и коммерческий-7 Lifestyle & Commercial-8 , Стиль жизни и коммерческий-8 Lifestyle & Commercial-9 , Стиль жизни и коммерческий-9 Light (blown) , Свет (перегорел) Light Angle , Светлый угол Light Color , Светлый цвет Light Direction , Направление света Light Effect , Эффект света Light Glow , Световое сияние Light Grey , Светло-серый Light Leaks , Легкие течи Light Motive , Легкий мотив Light Patch , Световой патч Light Rays , Световые лучи Light Smoothness , Легкая гладкость Light Strength , Прочность на свет Light Type , Тип света Lighten , Осветлить Lighten Edges , Осветлить края Lighter , Зажигалка Lighting , Освещение Lighting Angle , Угол освещения Lightness , Легкость Lightness (%) , Легкость (%) Lightness Factor , Фактор лёгкости Lightness Level , Уровень освещенности Lightness Max (%) , Макс. Легкость (%) Lightness Min (%) , Мин-лёгкость (%) Lightness Shift , Сдвиг света Lightness Smoothness , Легкость Гладкость Lightning , Молния Lighty Smooth , Светлый Гладкий Limit Hue Range , Предельный диапазон оттенков Line , Линия Line Opacity , Непрозрачность линии Line Precision , Точность линии Linear , Линейный Linear Burn , Линейный ожог Linear Light , Линейный свет Linear RGB , Линейный RGB Linear RGB [All] , Линейный RGB [Все] Linear RGB [Blue] , Линейный RGB [Синий] Linear RGB [Green] , Линейный RGB [Зеленый] Linear RGB [Red] , Линейный RGB [Красный] Linearity , Линейность Lineart , Линейный сайт Lineart + Color Spots , Линейный + цветные пятна Lineart + Color Spots + Extrapolated Colors , Линейный + цветные пятна + экстраполированные цвета Lineart + Colors , Линия + цвета Lineart + Extrapolated Colors , Линейный + экстраполированные цвета Lines , Линии Lines (256) , Линии (256) Linify , Ссылка на . Lissajous [Animated] , Лиссажус [Анимированный] Lissajous Spiral , лиссаджуская спираль Little , Маленький Little Blue , Маленький синий Little Cyan , Маленький голубой Little Green , Зеленый Little Key , Маленький ключ Little Magenta , Маленький пурпурный Little Red , Маленький Красный Little Yellow , Маленький Желтый LN Amplititude , LN Амплитуда LN Amplitude , LN Амплитуда LN Average-Smoothness , LN Средняя гладкость LN Neightborhood-Smoothness , LN Ночное детство-Гладкость LN Size , LN Размер Local Normalisation , Локальная нормализация Local Contrast , локальный контраст Local Contrast Effect , Локальный контрастный эффект Local Contrast Enhance , Повышение локального контраста Local Contrast Enhancement , Повышение локального контраста Local Contrast Style , Локальный контрастный стиль Local Detail Enhancer , Локальный детский усилитель Local Normalization , Локальная нормализация Local Orientation , Локальная ориентация Local Processing , Местная обработка Local Similarity Mask , Маска местного сходства Local Variance Normalization , Нормализация локальных вариаций Lock Return Scaling to Source Layer , Блокировка масштабирования возврата на исходный уровень Lock Source , Источник блокировки Lock Uniform Sampling , Блокировка Единообразный отбор проб Log(z) , Журнал(z) Logarithmic Distortion , Логарифмическое искажение Logarithmic Distortion Axis Combination for X-Axis , Логарифмическая комбинация оси искажения для оси X Logarithmic Distortion Axis Combination for Y-Axis , Комбинация оси логарифмического искажения для оси Y Logarithmic Distortion X-Axis Direction , Логарифмическое Искажение Направление оси X Logarithmic Distortion Y-Axis Direction , Логарифмическое искажение Направление оси Y Lomo , Ломо Lomography Redscale 100 , Ломографическая шкала 100 Lomography X-Pro Slide 200 , Ломографическая камера X-Pro Слайд 200 Lookup , Посмотреть Lookup Size , Размер поиска Loop Method , Метод петли Low , Низкий уровень Low Bias , Низкий Уровень Предвзятости Low Contrast Blue , Низкоконтрастный синий Low Frequency , Низкая частота Low Frequency Layer , Низкочастотный слой Low Key , Низкий Ключ Low Key 01 , Низкий ключ 01 Low Scale , Низкий масштаб Low Value , Низкая стоимость Lower Layer Is the Bottom Layer for All Blends , Нижний слой - это нижний слой для всех смесей. Lower Mask Threshold (%) , Нижний порог маски (%) Lower Side Orientation , Нижняя боковая ориентация Lowercase Letters , Нижний регистр Буквы Lowlights Crossover Point , Низко освещенная точка пересечения Lowres CLUT , Лоурес ЗАКРЫТО Lucky 64 , счастливчик 64 Luma Noise , шум Лумы Luminance Factor , фактор яркости Luminance Level , Уровень яркости Luminance Only , Только яркость Luminance Only (Lab) , Только яркость (Лаборатория) Luminance Only (YCbCr) , Только яркость (YCbCr) Luminance Shift , Сдвиг яркости Luminance Smoothness , Гладкость яркости Luminosity from Color , Светимость от цвета Luminosity Type , Тип светимости Lush Green Summer , Летняя пышная зелень Lutify.Me (7) , Лютифицируй. Я (7) LUTs Pack , СПОИ пакет Lylejk's Painting , Картина Лайлейка Magenta Coffee , Кофе "Пурпурный Magenta Day , День пурпурного цвета Magenta Day 01 , Пурпурный день 01 Magenta Dream , пурпурная мечта Magenta Factor , пурпурный фактор Magenta Shift , пурпурный сдвиг Magenta Smoothness , пурпурная гладкость Magenta Yellow , пурпурный жёлтый Magenta-Yellow , Пурпурно-желтый Magic Details , Волшебные детали Magnitude / Phase , Магнитуда / Фаза Mail , Почта Make Hue Depends on Region Size , Сделать оттенок зависит от размера региона Make Seamless [Patch-Based] , Сделать бесшовным [на основе патча] Make Squiggly , Сделать хрустящей Make Up , Макияж Mandelbrot , Мандельброт Mandelbrot - Julia Sets , Мандельброт - Джулия Сетс Mandelbrot Explorer , исследователь Мандельброта Manhattan , Манхэттен Manual , Руководство Manual Controls , Ручное управление Map , Карта Map Tones , Тоны карты Mapping , Картирование Marble , Мрамор Margin (%) , Маржа (%) Mascot Image , Талисманное изображение Masculine , Мужской Mask , Маска Mask + Background , Маска + фон Mask as Bottom Layer , Маска как нижний слой Mask By , Маска мимо Mask Color , Цвет маски Mask Contrast , Контраст масок Mask Creator , Создатель Маски Mask Dilation , Расширение маски Mask Size , Размер маски Mask Smoothness (%) , Гладкость маски (%) Mask Type , Тип маски Masked Image , Маскированное изображение Masking , Маскировка Match Colors With , Матч цвета с Matching Precision (Smaller Is Faster) , Соответствующая точность (Меньше - быстрее) Math Symbols , Математические символы Matrix , Матрица Max , Макс Max Angle , Макс Угол Max Angle Deviation (deg) , Максимальное отклонение угла (град) Max Area , Область Макс Max Curve , Макс-Куровень Max Iterations , Максимальное количество итераций Max Length (%) , Макс. длина (%) Max Offset (%) , Макс. смещение (%) Max Radius , Макс Радиус Max Threshold , Макс Порог Max-T , Макс-Т Maximal Area , Максимальная площадь Maximal Color Saturation , Максимальная насыщенность цвета Maximal Highlights , Максимальные показатели Maximal Radius , Максимальный радиус Maximal Seams per Iteration (%) , Максимальное количество швов за одну итерацию (%) Maximal Size , Максимальный размер Maximal Value , Максимальное значение Maximum , Максимум Maximum Dimension , Максимальный размер Maximum Image Size , Максимальный размер изображения Maximum Number of Image Colors , Максимальное количество цветов изображения Maximum Number of Output Layers , Максимальное количество выходных слоев Maximum Red:Blue Ratio in the Fringe , Максимальный Красный: Синий Соотношение в Грань Maximum Saturation , Максимальное насыщение Maximum Size Factor , Максимальный размерный коэффициент Maximum Value , Максимальное значение Maze , Лабиринт Maze Type , Тип лабиринта McKinnon 75 , Маккиннон 75 Mean Color , Средний цвет Mean Curvature , Средняя кривизна Median , Медиан Median (beware: Memory-Consuming!) , Медиан (остерегайся: Память-Потребность!) Median Radius , Медианское Радиус Medium , Средний Medium 3 , средняя величина 3 Medium Details Smoothness , Детали среднего размера Гладкость Medium Details Threshold , Средний Порог Детали Medium Frequency Layer , Среднечастотный слой Medium Scale (Original) , Средняя шкала (Оригинал) Medium Scale (Smoothed) , Средняя шкала (сглаженная) Memories , Воспоминания Merge Brightness / Colors , Слияние яркости / цвета Merge Layers? , Слияние слоев? Merging Mode , Режим слияния Merging Option , Вариант объединения Merging Steps , Слияние ступеней Mess with Bits , Месс с битами Metal , Металл Metallic Look , Металлический вид Method , Метод Metric , Метрика Metropolis , Метрополис Micro/macro Details Adjusted , Микро/макро Подробности Настроено Mid Grey , Средний серый Mid Noise , Средний шум Mid Offset , Среднее смещение Mid Tone Contrast , Контраст средних тонов Mid-Dark Grey , Среднетемно-серый Mid-Light Grey , Средне-светло-серый серый Mid-Tones , Средние тона Middle Grey , Средне- серый Middle Scale , Средний масштаб Midtones Brightness , Яркость средних тонов Midtones Color Intensity , Интенсивность цвета средних тонов Midtones Hue , Мидтонс Хью Mighty Details , Могучие детали Milo 5 , Мило 5 Min , Мин Min Angle Deviation (deg) , Мин Угол Отклонение (град) Min Area % , Мин. район % Min Cut (%) , Мин. разрез (%) Min Length (%) , Мин Длина (%) Min Offset (%) , Мин Смещение (%) Min Radius , Мин Радиус Min Threshold , Мин Порог Min-T , Мин-Т Mineral Mosaic , Минеральная мозаика Minimal Area , Минимальная площадь Minimal Area (%) , Минимальная площадь (%) Minimal Color Intensity , Минимальная интенсивность цвета Minimal Highlights , Минимальные яркости Minimal Path , Минимальный путь Minimal Radius , Минимальный радиус Minimal Region Area , Минимальный район Minimal Scale (%) , Минимальная шкала (%) Minimal Shape Area , Минимальная площадь формы Minimal Size , Минимальный размер Minimal Size (%) , Минимальный размер (%) Minimal Stroke Length , Минимальная длина хода Minimal Value , Минимальное значение Minimalist Caffeination , Минималистская кофеинация Minimum , Минимум Minimum Brightness , Минимальная яркость Minimum Red:Blue Ratio in the Fringe , Минимальное соотношение красного и синего цветов на границе Mirror , Зеркало Mirror Effect , Зеркальный эффект Mirror X , Зеркало Х Mirror Y , Зеркало Y Mirror-X , Зеркало-X Mix , Микс Mixed Mode , Смешанный режим Mixer [CMYK] , Миксер [CMYK] Mixer [HSV] , Миксер [HSV] Mixer [Lab] , Миксер [Лаборатория] Mixer [PCA] , Смеситель [PCA] Mixer [RGB] , Миксер [RGB] Mixer [YCbCr] , Миксер [YCbCr] Mixer Mode , Режим микшера Mixer Style , Стиль смесителя Mod , Мод Mode , Режим Modern Film , Современный фильм Modulo Value , Модульное значение Moiré Animation , Муар и орех; Анимация Moire Removal , Удаление муара Moire Removal Method , Метод удаления муара Mona Lisa , Мона Лиза Mondrian: Composition in Red-Yellow-Blue , Мондриан: Состав в красно-желто-синем цвете Mondrian: Evening; Red Tree , Мондриан: Добрый вечер; Красное дерево Mondrian: Gray Tree , Мондриан: Серое дерево Monet: San Giorgio Maggiore at Dusk , Моне: Сан-Джорджо Маджоре на закате. Monet: Water-Lily Pond , Моне: Водяной пруд с лилиями Monet: Wheatstacks - End of Summer , Моне: стог пшеницы - конец лета Monkey , Обезьяна Mono , Моно Mono Tinted , Моно-тонированный Mono+G , моно+G Mono+R , моно+R Mono+Ye , Моно+Да Mono-Directional , Мононаправленный Monochrome , Монохромный Monochrome 1 , монохромный 1 Monochrome 2 , монохромный 2 Montage , Монтаж Montage Type , Тип монтажа Moody-1 , Муди-1 Moody-10 , Муди-10 Moody-2 , Муди-2 Moody-3 , Муди-3 Moody-4 , Муди-4 Moody-5 , Муди-5 Moody-6 , Муди-6 Moody-7 , Муди-7 Moody-8 , Муди-8 Moody-9 , Муди-9 Moon2panorama , Лунная2панорама Moonlight 01 , Лунный свет 01 Moonrise , Восход Луны Morning 6 , утро 6 Morph [Interactive] , Морф [интерактивный] Morph Layers , морфологические слои Morphological - Fastest Sharpest Output , Морфологический - Самый быстрый острый выход Morphological Closing , морфологическое закрытие Morphological Filter , морфологический фильтр Morphology Painting , морфологическая живопись Morphology Strength , Морфология Сила Morroco 16 , Морроко 16 Mosaic , Мозаика Most , Большинство Mostly Blue , В основном голубой Motion Analyzer , Анализатор движения Moviz (48) , Мовиз (48) Moviz 1 , Мовиз 1 Moviz 10 , Мовиз 10 Moviz 11 , Мовиз 11 Moviz 12 , Мовиз 12 Moviz 13 , Мовиз 13 Moviz 14 , Мовиз 14 Moviz 15 , Мовиз 15 Moviz 16 , Мовиз 16 Moviz 17 , Мовиз 17 Moviz 18 , Мовиз 18 Moviz 19 , Мовиз 19 Moviz 2 , Мовиз 2 Moviz 20 , Мовиз 20 Moviz 21 , Мовиз 21 Moviz 22 , Мовиз 22 Moviz 23 , Мовиз 23 Moviz 24 , Мовиз 24 Moviz 25 , Мовиз 25 Moviz 26 , Мовиз 26 Moviz 27 , Мовиз 27 Moviz 28 , Мовиз 28 Moviz 29 , Мовиз 29 Moviz 3 , Мовиз 3 Moviz 30 , Мовиз 30 Moviz 31 , Мовиз 31 Moviz 32 , Мовиз 32 Moviz 33 , Мовиз 33 Moviz 34 , Мовиз 34 Moviz 35 , Мовиз 35 Moviz 36 , Мовиз 36 Moviz 37 , Мовиз 37 Moviz 38 , Мовиз 38 Moviz 39 , Мовиз 39 Moviz 4 , Мовиз 4 Moviz 40 , Мовиз 40 Moviz 41 , Мовиз 41 Moviz 42 , Мовиз 42 Moviz 43 , Мовиз 43 Moviz 44 , Мовиз 44 Moviz 45 , Мовиз 45 Moviz 46 , Мовиз 46 Moviz 47 , Мовиз 47 Moviz 48 , Мовиз 48 Moviz 5 , Мовиз 5 Moviz 6 , Мовиз 6 Moviz 7 , Мовиз 7 Moviz 8 , Мовиз 8 Moviz 9 , Мовиз 9 Much , Много Much Blue , Много синего Much Green , Много зелени Much Red , Много красного Multi-Layer Etch , Многослойное травление Multiple Colored Shapes Over Transp. BG , Многоцветные формы над транспарантом. ГЕНЕРАЛЬНЫЙ СЕКРЕТАРИАТ Multiple Layers , Многослойные Multiplier , Мультипликатор Multiply , Умножить Multiscale Operator , Многофункциональный оператор Munch: The Scream , Манч: Крик Mute Shift , Немой сдвиг Muted 01 , приглушённый 01 Muted Fade , приглушённый фадеж Mystic Purple Sunset , Мистический Фиолетовый Закат Nah , Нах Naif , Наиф Name , Имя Natural (vivid) , Натуральный (яркий) Nature & Wildlife-1 , Природа и дикая природа - 1 Nature & Wildlife-10 , Природа и дикая природа-10 Nature & Wildlife-2 , Природа и дикая природа-2 Nature & Wildlife-3 , Природа и дикая природа-3 Nature & Wildlife-4 , Природа и дикая природа-4 Nature & Wildlife-5 , Природа и дикая природа-5 Nature & Wildlife-6 , Природа и дикая природа-6 Nature & Wildlife-7 , Природа и дикая природа-7 Nature & Wildlife-8 , Природа и дикая природа - 8 Nature & Wildlife-9 , Природа и дикая природа-9 Nb Circles Surrounding , Nb Круги Окружающие Near Black , Почти черный Nearest , Ближайший Nearest Neighbor , Ближайший сосед Neat Merge , Изящное слияние Negate , Отрицать Negation , Отрицание Negative , Отрицательный Negative [Color] (13) , Отрицательный [Цвет] (13) Negative [New] (39) , Отрицательный [Новый] (39) Negative [Old] (44) , Отрицательный [Старый] (44) Negative Color Abstraction , Отрицательная цветовая абстракция Negative Colors , Отрицательные цвета Negative Effect , Отрицательный эффект Neighborhood Size (%) , Размер района (%) Neighborhood Smoothness , Соседская гладкость Nemesis , Немезида Neon 770 , Неон 770 Neon Lightning , неоновая молния Neumann , Нейман Neutral Color , нейтральный цвет Neutral Teal Orange , нейтральный апельсин чирка Neutral Warm Fade , Нейтральное потепление New Curves [Interactive] , Новые кривые [интерактивные] Newspaper , Газета Newton , Ньютон Newton Fractal , Ньютонский фрактал Night 01 , 01-я ночь Night Blade 4 , Ночное лезвие 4 Night From Day , Ночь с дня Night King 141 , Ночной король 141 Night Spy , Ночной Шпион Nine Layers , Девять слоев No Masking , Без маскировки No Recovery , Нет Восстановления No Rescaling , Без пересчета No Transparency , Нет Прозрачность Noise , Шум Noise [Additive] , Шум [Добавка] Noise [Perlin] , Шум [Перлин] Noise [Spread] , Шум [Распространение] Noise A , Шум А Noise B , Шум B Noise C , Шум С Noise D , Шум D Noise Level , Уровень шума Noise Scale , Шкала шума Noise Type , Тип шума Non / No , Нет Non-Linearity , Нелинейность None , Нет None (Allows Multi-Layers) , Нет (Позволяет многослойность) None- Skip , None-Scip Norm Type , Тип Нормы Normal , Нормальный Normal Map , Нормальная карта Normal Output , нормальный выход Normalization , Нормализация Normalize , Нормализовать Normalize Brightness , Нормализовать яркость Normalize Colors , Нормализовать цвета Normalize Illumination , Нормализовать освещение Normalize Input , Нормализовать вход Normalize Luma , Нормализовать Луму Normalize Scales , Нормализуют весы Nostalgia Honey , Ностальгия, милая Nostalgic , Ностальгический Nothing , Ничего Number , Номер Number of Added Frames , Количество добавленных кадров Number of Angles , Количество углов Number of Clusters , Количество кластеров Number of Colors , Количество цветов Number of Frames , Количество кадров Number of Inter-Frames , Количество межкадров Number of Iterations per Scale , Количество итераций по шкале Number of Key-Frames , Количество ключевых кадров Number of Levels , Количество уровней Number of Matches (Coarsest) , Количество совпадений (грубейший) Number of Matches (Finest) , Количество матчей (Лучшие) Number of Orientations , Число ориентаций Number Of Rays , Количество лучей Number of Scales , Количество шкал Number of Sizes , Количество размеров Number of Streaks , Количество полос Number of Teeth , Количество зубьев Number of Tones , Количество тонов Object Animation , Анимация объектов Object Ratio , Соотношение объектов Object Tolerance , Толерантность к объектам Octagon , Октагон Octagonal , Октагональный Octaves , Октавы Oddness (%) , Нечётность (%) Off , Офф Offset , Офсет Offset (%) , Смещение (%) Offset Angle Rays Layer 1 , Угловые лучи смещения Слой 1 Offset Angle Rays Layer 2 , Слои 2 лучей с углами смещения Ohad Peretz (7) , Охад Перец (7) Ohta8 , Ота8 Old Method - Slowest , Старый метод - самый медленный Old Photograph , Старая фотография Old West , Старый Запад Old-Movie Stripes , Полосы старого кино Oldschool 8bits , Старая школа 8бит ON1 Photography (90) , ON1 Фотография (90) Once Upon a Time , Однажды One Layer , Один слой One Layer (Horizontal) , Один слой (по горизонтали) One Layer (Vertical) , Один слой (вертикальный) One Layer per Single Color , Один слой на один цвет One Layer per Single Region , Один слой на один регион One Thread , Одна Нить Only Leafs , Только Листья Only Red , Только Красный Only Red and Blue , Только красный и синий Opacity , Непрозрачность Opacity (%) , Непрозрачность (%) Opacity as Heightmap , Непрозрачность как Высота Карты Opacity Contours , Непрозрачность Контуры Opacity Factor , Коэффициент непрозрачности Opacity Gain , Прирост непрозрачности Opacity Gamma , Гамма непрозрачности Opacity Snowflake , Непрозрачность Снежинка Opacity Threshold (%) , Порог непрозрачности (%) Opaque Pixels , непрозрачные пиксели Opaque Regions on Top Layer , Непрозрачные регионы на верхнем слое Opaque Skin , непрозрачная кожа Open Interactive Preview , Открытый интерактивный предварительный просмотр Opening , Открытие Operation Yellow , Эксплуатация Желтый Operator , Оператор Opposing , Против Optimized Lateral Inhibition , Оптимизированное боковое торможение Orange Dark 4 , Оранжевый Тёмный 4 Orange Dark 7 , Оранжевый Тёмный 7 Orange Dark Look , Оранжевый темный взгляд Orange Tone , Оранжевый тон Orange Underexposed , Оранжевый Неэкспонированный Oranges , Апельсины Order , Заказать Order By , Порядок по Orientation , Ориентация Orientation Coherence , Ориентация Согласованность Orientation Only , Только ориентация Orientations , Ориентации Original , Оригинал Original - (Opening + Closing)/2 , Оригинал - (Открытие + Закрытие)/2 Original - Erosion , Оригинал - Эрозия Original - Opening , Оригинал - Открытие Orthogonal Radius , ортогональный радиус Orton Glow , Ортон Глоу Orwo NP20-GDR , Орво НП20-ГДР Others (69) , Другие (69) Ouline Color , уличный цвет Outer , Внешний Outer Fading , Внешнее затухание Outer Length , Внешняя длина Outer Radius , Внешний радиус Outline , Описание Outline (%) , Набросок (%) Outline Color , Общий цвет Outline Contrast , Общий контраст Outline Opacity , Краткий обзор Непрозрачность Outline Size , Общий размер Outline Smoothness , Гладкость линий Outline Thickness , Общая толщина Outlined , Размещено на сайте Output , Выход Output As , Выход Как Output as Files , Выход в виде файлов Output as Frames , Выход в виде кадров Output as Multiple Layers , Выход как многослойный Output as Separate Layers , Выход в виде отдельных слоев Output Ascii File , Выходной файл Ascii Output Chroma NR , Выход Chroma NR Output CLUT , Выходной затвор Output CLUT Resolution , Разрешение выходного затвора Output Coordinates File , Выходные координаты Файл Output Corresponding CLUT , Выход Соответствующий затвор Output Directory , Выходной каталог Output Each Piece on a Different Layer , Выводить каждую деталь на другой слой Output Filename , Имя выходного файла Output Files , Выходные файлы Output Folder , Выходная папка Output Format , Формат вывода Output Frames , Выходные рамки Output Height , Выходная высота Output HTML File , Выходной HTML-файл Output Layers , Выходные слои Output Mode , Режим выхода Output Multiple Layers , Выходные многослойные Output Preset as a HaldCLUT Layer , Выходная предустановка в виде слоя HaldCLUT Output Region Delimiters , Выход Региональные делимитеры Output Saturation , Выходное насыщение Output Sharpening , Выход Заточка Output Stroke Layer On , Выходной слой-инсульт Вкл Output to Folder , Выход в папку Output Type , Тип выхода Output Width , Выходная ширина Outside , Снаружи Outside Color , Внешний цвет Outside-In , Снаружи Outward , Внешний Overall Blur , Общее размытие Overall Contrast , Общий контраст Overall Lightness , Общая легкость Overlap (%) , Перекрытие (%) Overlay , Наложение Oversample , Перевыборка Overshoot , Пересмотреть Pack , Упаковать Pack Sprites , Упаковка спрайтов Pacman , Пакман Padding (px) , Паддинг (px) Paint , Краска Paint Daub , Краска Дауб Paint Effect , Эффект краски Painter's Edge Protection Flow , Поток защиты кромок художника Painter's Smoothness , Гладкость живописца Painter's Touch Sharpness , Острота прикосновения художника Painting , Картина Painting Opacity , Живопись Непрозрачность Paladin , Паладин Paladin 1875 , Паладин 1875 Paper Texture , Текстура бумаги Parallel Processing , Параллельная обработка Parrots , Попугаи Pasadena 21 , Пасадена 21 Passing By , Проходя мимо Pastell Art , Пастельное искусство Patch , Патч Patch Measure , Меры по устранению неполадок Patch Size , Размер патча Patch Size for Analysis , Размер патча для анализа Patch Size for Synthesis , Размер патча для синтеза Patch Size for Synthesis (Final) , Размер патча для синтеза (окончательный) Patch Smoothness , Гладкость пятна Patch Variance , Патч-вариант Pattern , Образец Pattern Angle , Угол узора Pattern Height , Высота узора Pattern Type , Тип схемы Pattern Variation 1 , Вариация модели 1 Pattern Variation 2 , Вариация модели 2 Pattern Variation 3 , Вариация модели 3 Pattern Weight , Узорчатый вес Pattern Width , Ширина узора Paw , Лапа PCA Transfer , передача PCA Pea Soup , Гороховый суп Pen Drawing , Рисунок ручкой Penalize Patch Repetitions , Штрафовать повторы исправлений Pencil , Карандаш Pencil Amplitude , Амплитуда карандаша Pencil Portrait , Карандашный портрет Pencil Size , Размер карандаша Pencil Smoother Edge Protection , Защита карандаша от размывания краев Pencil Smoother Sharpness , Карандаш Гладкая Острота Pencil Smoother Smoothness , Карандаш Гладкая гладкость Pencil Type , Тип карандаша Pencils , Карандаши Pentagon , Пентагон Peppers , Перцы Percent of Image Half-Hypotenuse (%) , Процент полугипотенузы изображения (%) Periodic , Периодический Periodic Dots , Периодические точки Periodicity , Периодичность Perserve Luminance , Персервное освещение Perspective , Перспектива Perturbation , Пертурбация Petals , Лепестки Phase , Этап Phone , Телефон Phong , Тонг PhotoComix Preset , Предустановленная настройка PhotoComix Photoillustration , Фотоиллюстрация Picabia: Udnie , Пикабиа: Удне Picasso: Les Demoiselles D'Avignon , Пикассо: Les Demoiselles D'Avignon Picasso: Seated Woman , Пикассо: Сидячая женщина Picasso: The Reservoir - Horta De Ebro , Водохранилище - Хорта де Эбро... Piece Complexity , Сложность деталей Piece Size (px) , Размер штуки (px) Pin Light , Пин-лайт Pink Fade , Розовое затемнение Pinlight , Пинлайт Pitaya 15 , Питая, 15 Pixel Denoise , Пиксель Денуаза Pixel Sort , Сорт пикселей Pixel Values , Значения пикселей PIXLS.US (31) , ПИКСЛС.США (31) Placement , Размещение Plaid , Плайд Plane , Самолет Plasma , Плазма Plasma Effect , плазменный эффект Plot Type , Тип участка Point #0 , Точка #0 Point #1 , Пункт #1 Point #2 , Пункт 2 Point #3 , Пункт 3 Point 1 , Пункт 1 Point 2 , Пункт 2 Points , Баллы Poisson , Пуассон Polar Transform , Полярное преобразование Polaroid , Полароид Polaroid 664 , Полароид 664 Polaroid 665 , Полароид 665 Polaroid 665 + , Полароид 665 + Polaroid 665 ++ , Полароид 665 ++ Polaroid 665 - , Полароид 665 - Polaroid 665 -- , Полароид 665 -- Polaroid 665 Negative , Полароид 665 Отрицательный Polaroid 665 Negative + , Полароид 665 Отрицательный + Polaroid 665 Negative - , Полароид 665 Отрицательный - Polaroid 665 Negative HC , Полароид 665 Отрицательный HC Polaroid 667 , Полароид 667 Polaroid 669 , Полароид 669 Polaroid 669 + , Полароид 669 + Polaroid 669 ++ , Полароид 669 ++ Polaroid 669 +++ , Полароид 669 +++ Polaroid 669 - , Полароид 669 - Polaroid 669 -- , Полароид 669 -- Polaroid 669 Cold , Полароид 669 Холодный Polaroid 669 Cold + , Полароид 669 Холодный + Polaroid 669 Cold - , Полароид 669 Холодный - Polaroid 669 Cold -- , Полароид 669 Холодный -- Polaroid 672 , Полароид 672 Polaroid 690 , полароид 690 Polaroid 690 + , Полароид 690 + Polaroid 690 ++ , Полароид 690 ++ Polaroid 690 - , Полароид 690 - Polaroid 690 -- , Полароид 690 -- Polaroid 690 Cold , Полароид 690 Холодный Polaroid 690 Cold + , Полароид 690 Холодный + Polaroid 690 Cold ++ , Полароид 690 Холодный ++ Polaroid 690 Cold - , Полароид 690 Холодный - Polaroid 690 Cold -- , Полароид 690 Холодный... Polaroid 690 Warm , Полароид 690 Теплый Polaroid 690 Warm + , Полароид 690 Теплый + Polaroid 690 Warm ++ , Полароид 690 Теплый ++ Polaroid 690 Warm - , Полароид 690 Теплый - Polaroid 690 Warm -- , Полароид 690 Теплый... Polaroid Polachrome , полароидный полихром Polaroid PX-100UV+ Cold , Полароид PX-100UV+ Холодный Polaroid PX-100UV+ Cold + , Полароид PX-100UV+ Холодный + Polaroid PX-100UV+ Cold ++ , Полароид PX-100UV+ Холодный ++ Polaroid PX-100UV+ Cold +++ , Полароид PX-100UV+ Холодный + +++ Polaroid PX-100UV+ Cold - , Полароид PX-100UV+ Холодный - Polaroid PX-100UV+ Cold -- , Полароид PX-100UV+ Холодный... Polaroid PX-100UV+ Warm , Полароид PX-100UV+ теплый Polaroid PX-100UV+ Warm + , Полароид PX-100UV+ теплый + Polaroid PX-100UV+ Warm ++ , Полароид PX-100UV+ теплый ++ Polaroid PX-100UV+ Warm +++ , Полароид PX-100UV+ Теплый + +++ Polaroid PX-100UV+ Warm - , Полароид PX-100UV+ Теплый - Polaroid PX-100UV+ Warm -- , Полароид PX-100UV+ Теплый... Polaroid PX-680 , Полароид PX-680 Polaroid PX-680 + , Полароид PX-680 + Polaroid PX-680 ++ , Полароид PX-680 ++ Polaroid PX-680 - , Полароид PX-680 - Polaroid PX-680 -- , Полароид PX-680 -- Polaroid PX-680 Cold , Полароид PX-680 Холодный Polaroid PX-680 Cold + , Полароид PX-680 Холодный + Polaroid PX-680 Cold ++ , Полароид PX-680 Холодный ++ Polaroid PX-680 Cold ++a , Полароид PX-680 Холодный ++a Polaroid PX-680 Cold - , Полароид PX-680 Холодный - Polaroid PX-680 Cold -- , Полароид PX-680 Холодный. Polaroid PX-680 Warm , Полароид PX-680 Теплый Polaroid PX-680 Warm + , Полароид PX-680 Теплый + Polaroid PX-680 Warm ++ , Полароид PX-680 Теплый ++ Polaroid PX-680 Warm - , Полароид PX-680 Теплый - Polaroid PX-680 Warm -- , Полароид PX-680 Теплый... Polaroid PX-70 , Полароид PX-70 Polaroid PX-70 + , Полароид PX-70 + Polaroid PX-70 ++ , Полароид PX-70 ++ Polaroid PX-70 +++ , Полароид PX-70 +++ Polaroid PX-70 - , Полароид PX-70 - Polaroid PX-70 -- , Полароид PX-70 -- Polaroid PX-70 Cold , Полароид PX-70 Холодный Polaroid PX-70 Cold + , Полароид PX-70 Холодный + Polaroid PX-70 Cold ++ , Полароид PX-70 Холодный ++ Polaroid PX-70 Cold - , Полароид PX-70 Холодный - Polaroid PX-70 Cold -- , Полароид PX-70 Холодный... Polaroid PX-70 Warm , Полароид PX-70 Теплый Polaroid PX-70 Warm + , Полароид PX-70 Теплый + Polaroid PX-70 Warm ++ , Полароид PX-70 Теплый ++ Polaroid PX-70 Warm - , Полароид PX-70 Теплый - Polaroid PX-70 Warm -- , Полароид PX-70 Теплый... Polaroid Time Zero (Expired) , Полароид Время Ноль (истекло) Polaroid Time Zero (Expired) + , Полароид Время Ноль (истекло) + Polaroid Time Zero (Expired) ++ , Полароидное время Ноль (истекло) ++ Polaroid Time Zero (Expired) - , Полароид Время Ноль (истекло) - Polaroid Time Zero (Expired) -- , Полароид Время Ноль (истекло)... Polaroid Time Zero (Expired) --- , Полароид Время Ноль (истекло) --- Polaroid Time Zero (Expired) Cold , Полароид Время Ноль (истекло) Холодный Polaroid Time Zero (Expired) Cold - , Полароид Время Ноль (истекло) Холодно - Polaroid Time Zero (Expired) Cold -- , Полароид Время Ноль (истекло) Холодно... Polaroid Time Zero (Expired) Cold --- , Полароид Время Ноль (истекло) Холодно --- Pole Lat , Полярный лат Pole Long , Поляк Лонг Pole Rotation , Вращение полюса Polka Dots , точки Польки Pollock: Convergence , Поллок: Конвергенция Pollock: Summertime Number 9A , Поллок: Номер летнего времени 9A Polygonize [Delaunay] , Полигонизируй [Делоне] Polygonize [Energy] , Полигонизируй [Энергия] Pop Shadows , Поп-Тени Portrait , Портрет Portrait Retouching , Ретуширование портретов Portrait-1 , Портрет-1 Portrait-2 , Портрет-2 Portrait-3 , Портрет-3 Portrait-4 , Портрет-4 Portrait-5 , Портрет-5 Portrait-6 , Портрет-6 Portrait-7 , Портрет-7 Portrait-8 , Портрет-8 Portrait-9 , Портрет-9 Portrait0 , Портрет0 Portrait1 , Портрет1 Portrait10 , Портрет10 Portrait2 , Портрет2 Portrait3 , Портрет3 Portrait4 , Портрет4 Portrait5 , Портрет5 Portrait6 , Портрет6 Portrait7 , Портрет7 Portrait8 , Портрет8 Portrait9 , Портрет9 Position , Позиция Position X (%) , Положение Х (%) Position X Origin (%) , Положение Х Происхождение (%) Position Y (%) , Позиция Y (%) Position Y Origin (%) , Позиция Y Происхождение (%) Positive , Положительный Post-Gamma , Пост-гамма Post-Normalize , Пост-нормализация Post-Process , Постпроцесс Poster Edges , Кромки плакатов Posterization Antialiasing , Постеризация Сглаживание Posterization Level , Уровень постеризации Posterize , Плакат Posterized Dithering , Постеризованная дизеринг Pow , Поу Pre-Defined , Предварительно определено Pre-Defined Colormap , Предварительно определенная цветовая карта Pre-Gamma , Пре-гамма Pre-Normalize , Предварительно зарегистрировать Pre-Normalize Image , Предварительное форматирование изображения Pre-Process , Препроцесс Precision , Точность Precision (%) , Точность (%) Preliminary Surface Shift , Предварительный сдвиг поверхности Preliminary X-Axis Scaling , Предварительное масштабирование по оси X Preliminary Y-Axis Scaling , Предварительное масштабирование по оси Y Preprocessor Power , Мощность препроцессора Preprocessor Radius , Препроцессор Радиус Preserve Canvas for Post Bump Mapping , Сохранить холст для пост-картографирования ударов Preserve Edges , Сохранить края Preserve Image Dimension , Сохранить размер изображения Preserve Initial Brightness , Сохранять первоначальную яркость Preserve Luminance , Сохранить яркость Preset , Предустановленный сайт Preview , Предварительный просмотр Preview All Outputs , Предварительный просмотр всех выходов Preview Bands , Предварительный просмотр Полосы Preview Brush , Кисть предварительного просмотра Preview Data , Данные предварительного просмотра Preview Detected Shapes , Предварительный просмотр Обнаруженные формы Preview Frame Selection , Предварительный просмотр кадра Выбор кадра Preview Gradient , Предпросмотровый градиент Preview Grain Alone , Предварительный просмотр Зерно Одно Preview Grid , Сетка предварительного просмотра Preview Guides , Путеводители по предварительному просмотру Preview Mapping , Предварительный просмотр Картирование Preview Mask , Маска предварительного просмотра Preview Only Shadow , Только для предварительного просмотра Тень Preview Opacity (%) , Просмотр Прозрачность (%) Preview Original , Предварительный просмотр оригинала Preview Precision , Точность предварительного просмотра Preview Progress (%) , Предварительный просмотр Прогресс (%) Preview Progression While Running , Предварительный просмотр прогрессии во время бега Preview Ref Point , Точка отсчета до просмотра Preview Reference Circle , Ориентировочный круг предварительного просмотра Preview Selection , Предварительный просмотр Отбор Preview Shape , Форма предварительного просмотра Preview Shows , Предварительные показы Preview Split , Предварительный просмотр Сплит Preview Subsampling , Предварительный просмотр Субсэмплирование Preview Time , Время предварительного просмотра Preview Tones Map , Предварительный просмотр Тоны Карта Preview Type , Предварительный просмотр Тип Preview Without Alpha , Предварительный просмотр без Альфы Prewitt-Y , Предит-Y Primary Angle , Основной угол Primary Color , Основной цвет Primary Factor , первичный фактор Primary Gamma , Первичная Гамма Primary Radius , Первичный радиус Primary Shift , Первичная смена Primary Twist , Первичный поворот Print Adjustment Marks , Маркировки регулировки печати Print Films (12) , Печатные фильмы (12) Print Frame Numbers , Номера рамок для печати Print Size Unit , Размеры единицы измерения для печати Print Size Width , Ширина печати Privacy Notice , Положение о конфиденциальности Pro Neg Hi , Про Нег Привет Probability Map , Карта вероятностей Procedural , Процедурный Process As , Процесс As Process by Blocs of Size , Процесс по блокам размеров Process Channels Individually , Каналы процесса Индивидуально Process Top Layer Only , Только верхний слой процесса Process Transparency , Прозрачность процесса Processing Mode , Режим обработки Propagation , Распространение Proportion , Доля Protanomaly , Протаномалия Protanopia , Протанопия Protect Highlights 01 , Защита Highlights 01 Prussian Blue , берлинская лазурь Pseudo-Gray Dithering , Псевдо-серый дизеринг Purple , Фиолетовый Purple11 (12) , Фиолетовый11 (12) Puzzle , Головоломка Pyramid , Пирамида Pyramid Processing , Обработка пирамид Pythagoras Tree , Пифагорское дерево Quadratic , Квадратный Quadtree Variations , Вариации в четырех деревьях Quality , Качество Quality (%) , Качество (%) Quantization , Количество Quantize Colors , Количественные цвета Quasi-Gaussian , квази-гаусский Quick , Быстрый Quick Copyright , Быстрое авторское право Quick Enlarge , Быстрое увеличение R/B Smoothness (Principal) , Р/Б Гладкость (Директор) R/B Smoothness (Secondary) , Р/Б Гладкость (вторичная) Radial , Радиал Radius , Радиус Radius (%) , Радиус (%) Radius / Angle , Радиус / Угол Radius [Manual] , Радиус [Руководство] Radius Cut , Радиусная резка Radius Middle Circle , Радиус среднего круга Radius Outer Circle A (>0 W%) (<0 H%) , Радиус внешнего круга A (>0 Вт%) (<0 Н%) Rain & Snow , Дождь и снег Rainbow , Радуга Raindrops , Капли дождя Random , Случайный Random [non-Transparent] , Случайно [непрозрачно] Random Angle , Случайный угол Random Color Ellipses , Случайные цветные эллипсы Random Colors , Случайные цвета Random Seed , Случайное семя Random Shade Stripes , Случайные полосы тени Randomize , Случайный выбор Randomized , Случайный Randomness , Случайность Range , Диапазон Ratio , Соотношение Raw , Сырой Rays , Лучи Rays Colors ABC , Лучи Цвета ABC Rays Colors ABCD , Лучи Цвета ABCD Rays Colors ABCDE , Лучи Цвета ABCDE Rays Colors ABCDEF , Лучи Цвета ABCDEF Rays Colors ABCDEFG , Лучи Цвета ABCDEFG Rebuild From Similar Blocs , Восстановление из подобных блоков Recompose , Переписать . Reconstruct From Previous Frames , Восстановить из предыдущих кадров Recover , Восстановить Recover Highlights , Восстановить основные моменты Recover Shadows , Восстановить Тени Recovery , Восстановление Rectangle , Прямоугольник Recursion Depth , Глубина рекурсии Recursions , Рескурсии Recursive Median , Рекурсивная Медиана Red , Красный Red - Green - Blue , Красный - Зеленый - Синий Red - Green - Blue - Alpha , Красный - Зеленый - Синий - Альфа Red Afternoon 01 , Красный День 01 Red Blue Yellow , Красный синий желтый Red Chroma Smoothness , Гладкость красной хромы Red Chrominance , Красное Хромонирование Red Day 01 , Красный день 01 Red Dream 01 , Красная мечта 01 Red Factor , Красный фактор Red Level , Красный уровень Red Rotations , Красные Вращения Red Shift , Красное смещение Red Smoothness , Красная гладкость Red Wavelength , Длина волны красного цвета Red-Eye Attenuation , затухание красного глаза Red-Green , Красно-зеленый Reds , Красные Reds Oranges Yellows , Красные апельсины Жёлтые Reduce Halos , Сократить ореолы Reduce Noise , Уменьшить шум Reduce RAM , Уменьшить оперативную память Reduce Redness , Уменьшить красноту Reeve 38 , Рив 38 Reference , Ссылка на Reference Angle (deg.) , Справочный угол (град.) Reference Color , Референтный цвет Reference Colors , Референтные цвета Reflect , Отражение Reflection , Размышление Refraction , Преломление Regular Grid , Регулярная сеть Regularity , Регулярность Regularity (%) , Регулярность (%) Regularization , Регуляризация Regularization (%) , Регуляризация (%) Regularization Factor , Коэффициент регуляризации Regularization Iterations , Итерации регуляризации Reject , Отклонить Rejected Colors , Отклонённые цвета Rejected Mask , Отклонённая маска Relative Block Count , Количество относительных блоков Relative Size , Относительный размер Relative Warping , относительное искажение Release Notes , Информация о выпуске Relief , Рельеф Relief Amplitude , Амплитуда рельефа Relief Contrast , Контраст рельефа Relief Light , Рельефный свет Relief Size , Размер рельефа Relief Smoothness , Гладкость рельефа Remix , Ремикс Remove Artifacts From Micro/Macro Detail , Удалить артефакты из Micro/Macro детали Remove Hot Pixels , Удалить горячие пиксели Remove Tile , Удалить плитку Remy 24 , Реми 24 Render Multiple Frames , Рендер несколько кадров Render on Dark Areas , Рендер на темных территориях Render on White Areas , Рендер на белых территориях Render Routine for Wiggle Animations , Рендер Рутина для анимации вихревых движений Rendering , Оказание услуг Rendering Mode , Режим реендеринга Repair Scanned Document , Восстановить отсканированный документ Repeat , Повторить Repeat [Memory Consuming!] , Повторяю [Потребление памяти!] Repeats , Повторяется Replace , Заменить Replace (Sharpest) , Заменить (Sharpest) Replace Layer with CLUT , Заменить слой на CLUT Replace Source by Target , Заменить источник на цель Replace With White , Заменить на белый Replaced Color , Замененный цвет Replacement Color , Сменный цвет Reptile , Рептилия Rescaling , Рескалинг Reset View , Сброс просмотра Resize Image for Optimum Effect , Изменение размера изображения для оптимального эффекта Resolution , Резолюция Resolution (%) , Резолюция (%) Resolution (px) , Резолюция (px) Rest 33 , Отдых 33 Result Image , Результат Изображение Result Type , Тип результата Resynthetize Texture [FFT] , Ресинтезируйте текстуру [FFT]. Resynthetize Texture [Patch-Based] , Пересинтезируйте текстуру [на основе патча]. Retinex , Ретинекс Retouch Layer , Слой ретуширования Retouched and Sharpened Areas , Обработанные и заточенные участки Retouched Areas Only , Только ретушированные зоны Retouched Image , Ретушированное изображение Retouched Image Basic , Ретушированное изображение Основное Retouched Image Final , Ретушированное изображение Окончательное Retouching Style , ретуширующий стиль Retro , Ретро Retro Brown 01 , Ретро-Браун 01 Retro Fade , Ретро Фейд Retro Magenta 01 , Ретро пурпурный 01 Retro Summer 3 , Ретро Лето 3 Retro Yellow 01 , Ретро-желтый 01 Return Scaling , Масштабирование возврата Reverse Bits , Обратные биты Reverse Bytes , Обратные байты Reverse Effect , Обратный эффект Reverse Endianness , Обратная Эндианность Reverse Flip , Обратный ход Reverse Frame Stack , Стек обратных кадров Reverse Gradient , обратный градиент Reverse Mod , Обратный режим Reverse Motion , Обратное движение Reverse Order , Обратный порядок Reverse Pow , Обратный ход Revert Layer Order , Ордер на обратный отсек Revert Layers , Реверсивные слои RGB [All] , RGB [Все] RGB [Blue] , RGB [Синий] RGB [Green] , RGB [Зеленый] RGB [red] , RGB [красный] RGB Image + Binary Mask (2 Layers) , RGB изображение + двоичная маска (2 слоя) RGB Quantization , Количественное определение RGB RGB Tone , RGB-Тон RGB[A] , RGB[А] RGBA [All] , RGBA [Все] RGBA [Alpha] , РГБА [Альфа] RGBA Foreground + Background (2 Layers) , RGBA передний план + фон (2 слоя) RGBA Image (Full-Transparency / 1 Layer) , RGBA-изображение (Полная прозрачность / 1 слой) RGBA Image (Updatable / 1 Layer) , RGBA-изображение (обновляемое / 1 слой) Rice , Рис Right , Справа Right Diagonal Foreground , Правый диагональный передний план Right Diagonal Foreground , Правый диагональный передний план Right Eye View , Правый глаз Right Foreground , Правый передний план Right Position , Правая позиция Right Side Orientation , Правая боковая ориентация Right Slope , Правый Склон Right Stream Only , Только правый поток Rigid , Жесткий Robert Cross 1 , Роберт Кросс 1 Robert Cross 2 , Роберт Кросс 2 Roddy , Родди Roddy (by Mahvin) , Родди (по Махвину) Rodilius , Родилиус Rodilius [Animated] , Родилий [Анимированный] Rollei IR 400 , Роллей ИК 400 Rollei Ortho 25 , Роллей Орто 25 Rollei Retro 100 Tonal , Роллей Ретро 100 Тональ Rollei Retro 80s , Роллей Ретро 80х Rooster , Рустер Rorschach , Роршах Rose , Роза Rotate , Повернуть Rotate (muted) , Поворот (приглушённый) Rotate (vibrant) , Поворот (вибрирующий) Rotate 180 Deg. , Поворот на 180 градусов. Rotate 270 Deg. , Поворот на 270 градусов. Rotate 90 Deg. , Поворот на 90 градусов. Rotate Hue Bands , Поворотные полосы оттенка Rotate Tree , Поворотное дерево Rotated , Поворотный Rotated (crush) , Вращающийся (раздавленный) Rotations , Вращения Rotinv-X , Ротинв-Х Round , Раунд Roundness , Круглосуточность Row by Row , Гребите за гребцом Rubik , Рубик RYB [All] , RYB [Все] RYB [Blue] , RYB [Синий] RYB [Red] , RYB [Красный] RYB [Yellow] , RYB [Жёлтый] S-Curve Contrast , S-образный контраст Salt and Pepper , Соль и перец Same as Input , То же, что и входной Same Axis , Та же ось Sample Image , Образец изображения Sampling , Выборка Sat Bottom , Сбботботботтома Sat Range , Сат-Рейндж Sat Top , Сат-Топ Satin , Атлас Saturated Blue , Насыщенная синяя Saturation , Насыщенность Saturation (%) , Насыщенность (%) Saturation Channel Gamma , Гамма канала насыщения Saturation Correction , Коррекция насыщения Saturation EQ , ЗМТ насыщения Saturation Factor , Коэффициент насыщения Saturation Offset , Смещение по насыщению Saturation Shift , Сдвиг насыщения Saturation Smoothness , Гладкость насыщения Save CLUT as .Cube or .Png File , Сохранить CLUT как .Cube или .Png файл Save Gradient As , Сохранить градиент как Saving Private Damon , Спасение рядового Деймона Scalar , Скалар Scale , Шкала Scale (%) , Шкала (%) Scale 1 , Шкала 1 Scale 2 , Шкала 2 Scale CMYK , Масштаб CMYK Scale Factor , Масштабный коэффициент Scale Output , Масштабный выход Scale Plasma , Масштабная плазма Scale RGB , Масштаб RGB Scale Style to Fit Target Resolution , Стиль масштабирования в соответствии с целевым разрешением Scale Variations , Масштабные вариации Scaled , Масштаб Scales , Весы Scaling Factor , Коэффициент масштабирования Scanlines , Сканирует Scene Selector , Выбор сцены Science Fiction , научная фантастика Screen , Экран Screen Border , Граница экрана Seamless Deco , Бесшовная деко Seamless Turbulence , Бесшовная турбулентность Secant , Секант Second Color , Второй цвет Second Offset , Второе смещение Second Radius , Второй Радиус Second Size , Второй размер Secondary Color , Вторичный цвет Secondary Factor , Вторичный фактор Secondary Gamma , Вторичная гамма Secondary Radius , Вторичный радиус Secondary Shift , Вторичная смена Secondary Twist , Вторичная закрутка Sectors , Сектора Segment Max Length (px) , Сегмент Макс Длина (px) Segmentation , Сегментация Segmentation Edge Threshold , Порог сегментации Segmentation Smoothness , Гладкость сегментации Segments , Сегменты Segments Strength , Прочность сегментов Select By , Выберите по Selected Color , Выбранный цвет Selected Colors , Избранные цвета Selected Frame , Выбранная рамка Selected Mask , Избранная маска Selection , Выбор Selective Desaturation , Селективное насыщение Selective Gaussian , селективный гаусс Self , Сама Self Glitching , Самовозгорание Self Image , Само изображение Sensitivity , Чувствительность Sepia , Сепия Sequence X4 , Последовательность X4 Sequence X6 , Последовательность X6 Sequence X8 , Последовательность X8 Serenity , Серенити Serial Number , Серийный номер Seringe 4 , Серинга 4 Serpent , Змей Set Aspect Only , Установить только аспект Set Frame Format , Установить Формат кадра Seven Layers , Семь слоев Seventies Magazine , журнал 70-х годов Shade , Тень Shade Angle , Угол тени Shade Back to First Color , Вернуться к первому цвету Shade Bobs , Бобы теней Shade Strength , Прочность теней Shadebobs , Шейдеры Shading , Шейдинг Shading (%) , Затенение (%) Shadow , Тень Shadow Contrast , Контраст теней Shadow Intensity , Интенсивность теней Shadow King 39 , Король Теней 39 Shadow Offset X , Смещение теней X Shadow Offset Y , Смещение тени Y Shadow Size , Размер Тени Shadow Smoothness , Гладкость Теней Shadows , Тени Shadows Abstraction , Абстракция теней Shadows Brightness , Тени Яркость Shadows Color Intensity , Тени Интенсивность цвета Shadows Lightness , Тени Легкость Shadows Selection , Выбор теней Shadows Threshold , Порог Теней Shadows Zone , Зона теней Shamoon Abbasi (25) , Шамун Аббаси (25) Shape , Форма Shape Area Max , Максимальная площадь формы Shape Area Max0 , Область формирования Max0 Shape Area Min , Форма Площадь Мин Shape Area Min0 , Область формирования Min0 Shape Average , Форма Среднее Shape Average0 , Форма Среднее0 Shape Max , Форма Макс Shape Max0 , Форма Макс 0 Shape Median , Форма Медиана Shape Median0 , Форма Медианы0 Shape Min , Форма Мин Shape Min0 , Форма Мин0 Shapeism , Шейпизм Shapes , Формы Sharp Abstract , Резкий аннотационный доклад Sharpen [Gradient] , Sharpen [Градиент] Sharpen [Hessian] , Шарпен [Гессен] Sharpen [Inverse Diffusion] , Sharpen [Обратная диффузия] Sharpen [Octave Sharpening] , Sharpen [Октава Sharpening] Sharpen [Richardson-Lucy] , Sharpen [Ричардсон-Люси] Sharpen Details in Preview , Подробности в предварительном просмотре Sharpen Edges Only , Только острые края Sharpen Object , Острый предмет Sharpen Radius , острый радиус Sharpened Areas Only , Только заточенные участки Sharpening , Заточка Sharpening Layer , Заточной слой Sharpening Radius , Радиус заточки Sharpening Strength , Прочность на заточку Sharpening Type , Тип заточки Sharpness , Резкость Shift Linear Interpolation? , Линейная интерполяция сдвига? Shift Point , Точка переключения Shift Y , Сдвиг Y Shine , Блеск Shininess , Блеск Shivers , мурашки по коже Shock Waves , Ударные волны Shopping Cart , Корзина Show Both Poles , Показать Оба поляка Show Difference , Показать разницу Show Frame , Показать рамку Show Grid , Показать сетку Show Watershed , Показать Водораздел Shrink , Уменьшить Shuffle Pieces , Шарканье кусочков Side by Side , Бок о бок Sierpinksi Design , Дизайн Серпинкси Sierpinski Triangle , Серпинский треугольник Sigma 1 , Сигма 1 Sigma 2 , Сигма 2 Similarity Space , Пространство сходства Simple Local Contrast , Простой локальный контраст Simple Noise Canvas , Простой шумовой холст Simulate Film , Моделировать кино Sin(z) , грех(z) Sine , Сине Sine+ , Синус+ Single (Merged) , Одинокий (объединенный) Single Custom Depth Map , Единая пользовательская карта глубины Single Image Stereogram , Стереограмма одного изображения Single Layer , Однослойный Single Opaque Shapes Over Transp. BG , Одиночные непрозрачные формы над транспарантом. ГЕНЕРАЛЬНЫЙ СЕКРЕТАРИАТ Six Layers , Шесть слоев Sixteen Threads , Шестнадцать Нитей Size , Размер Size (%) , Размер (%) Size for Bright Tones , Размер для ярких тонов Size for Dark Tones , Размер для темных тонов Size of Frame Numbers (%) , Размер номеров кадров (%) Size Variance , Вариативность размеров Size-1 , Размер 1 Size-2 , Размер-2 Size-3 , Размер 3 Skeletik , Скелетик Skeleton , Скелет Sketch , Скетч Skin Estimation , Оценка кожи Skin Mask , Маска из кожи Skin Tone Colors , Цвета оттенков кожи Skin Tone Mask , Маска оттенков кожи Skin Tone Protection , Защита от оттенков кожи Skip All Other Steps , Пропустить все остальные шаги Skip Finest Scales , Пропустить лучшие весы Skip Others Steps , Пропустить другие шаги Skip This Step , Пропустите этот шаг Skip to Use the Mask to Boost , Пропустите, чтобы использовать маску для усиления Slice Luminosity , Светимость срезов Slide [Color] (26) , Слайд [Цвет] (26) Slow (Accurate) , Медленно ( Точно ) Slow Recovery , Медленное восстановление Small , Маленький Small (Faster) , Маленький (Быстрее) SmallHD Movie Look (7) , Смотрите фильм SmallHD Movie Look (7) Smart , Умный Smart Contrast , Умный контраст Smart Threshold , умный порог Smokey , Смоки Smooth , Гладкий Smooth [Anisotropic] , Гладкий [Анизотропный] Smooth [Bilateral] , Гладкий [Двусторонний] Smooth [Geometric-Median] , Гладкий [Геометрический-Медиан] Smooth [Mean-Curvature] , Гладкий [Средняя кривизна] Smooth [Median] , Гладкая [Медиана] Smooth [Perona-Malik] , Гладкий [Перона-Малик] Smooth [Selective Gaussian] , Smooth [Селективный Гаусс] Smooth [Skin] , Гладкая [Кожа] Smooth [Thin Brush] , Гладкая [Тонкая щетка] Smooth [Total Variation] , Гладкий [Полная изменчивость] Smooth [Wiener] , Гладкий [Винер] Smooth Abstract , Гладкий реферат Smooth Amount , Гладкое количество Smooth Clear , Гладкая чистота Smooth Colors , Гладкие цвета Smooth Crome-Ish , Гладкий Кром-Иш Smooth Dark , Гладкая Тьма Smooth Fade , Гладкое угасание Smooth Green Orange , Гладкий зеленый апельсин Smooth Light , Гладкий свет Smooth Looping , Гладкая петля Smooth Only , Только гладкий Smooth Sailing , Гладкий парусный спорт Smooth Teal Orange , Гладкий апельсин чирка Smoothen Background Reconstruction , Сглаженный фон Реконструкция Smoother Edge Protection , Защита более гладкой кромки Smoother Sharpness , Гладкая Острота Smoother Softness , Гладкая мягкость Smoothing , Сглаживание Smoothing Style , Стиль сглаживания Smoothing Type , Тип сглаживания Smoothness , Гладкость Smoothness (%) , Гладкость (%) Smoothness (px) , Гладкость (px) Smoothness Shadow , Тень Гладкости Smoothness Type , Тип гладкости Snowflake , Снежинка Snowflake 2 , Снежинка 2 Snowflake Recursion , Рекурсия снежинки Sobel-X , Собель-Х Sobel-Y , Собель-Y Soft Light , Мягкий свет Soft Burn , Мягкий ожог Soft Fade , Мягкое увядание Soft Glow , Мягкое сияние Soft Glow [Animated] , Мягкое сияние [анимированное] Soft Light , Мягкий свет Soft Random Shades , Мягкие случайные оттенки Soft Warming , Мягкое потепление Soften , Смягчить Soften All Channels , Смягчите все каналы Soften Guide , Смягчайте руководство Solarize , Соляризовать Solarize Color , Соляризовать цвет Solarized Color2 , Соляризованный Цвет2 Solidify , Солидировать Solve Maze , Разрешите лабиринт Some , Некоторое количество Some Blue , Некоторое количество синего Some Cyan , Немного голубого цвета Some Green , Некоторые Зеленые Some Key , Некоторые Ключ Some Magenta , Немного пурпурного цвета Some Red , немного красного Some Yellow , Жёлтый Sort Colors , Сортировка цветов Sorting Criterion , Критерий сортировки Source (%) , Источник (%) Source Color #1 , Источник Цвет #1 Source Color #10 , Источник Цвет № 10 Source Color #11 , Источник Цвет № 11 Source Color #12 , Источник Цвет № 12 Source Color #13 , Источник Цвет № 13 Source Color #14 , Источник Цвет № 14 Source Color #15 , Источник Цвет № 15 Source Color #16 , Источник Цвет № 16 Source Color #17 , Источник Цвет № 17 Source Color #18 , Источник Цвет № 18 Source Color #19 , Источник Цвет #19 Source Color #2 , Источник Цвет № 2 Source Color #20 , Источник Цвет № 20 Source Color #21 , Источник Цвет № 21 Source Color #22 , Источник Цвет #22 Source Color #23 , Источник Цвет #23 Source Color #24 , Источник Цвет #24 Source Color #3 , Источник Цвет № 3 Source Color #4 , Источник Цвет № 4 Source Color #5 , Источник Цвет № 5 Source Color #6 , Источник Цвет № 6 Source Color #7 , Источник Цвет #7 Source Color #8 , Источник Цвет № 8 Source Color #9 , Источник Цвет #9 Source X-Tiles , Источник X-Плитки Source Y-Tiles , Источник Y-панели Space , Пространство Spacing , Размещение Spatial Bandwidth , Пространственная полоса пропускания Spatial Metric , Пространственная метрика Spatial Overlap , Пространственное перекрытие Spatial Precision , Пространственная точность Spatial Radius , Пространственный радиус Spatial Regularization , Пространственная регуляризация Spatial Sampling , Пространственный отбор проб Spatial Scale , Пространственная шкала Spatial Tolerance , Пространственная толерантность Spatial Transition , Пространственный переход Spatial Variance , Пространственная вариация Special Effects , Специальные эффекты Specific Saturation , Удельное насыщение Specify Different Output Size , Укажите другой выходной размер Specify HaldCLUT As , Укажите HaldCLUT как Speed , Скорость Sphere , Сфера Spherize , Сферизировать Spiral , Спираль Spiral RGB , Спираль RGB Spline B1 , Сплайн B1 Spline B2 , Сплайн B2 Spline B3 , Сплайн B3 Spline B4 , Сплайн B4 Spline B5 , Сплайн B5 Spline B6 , Сплайн B6 Spline Editor , Редактор слайнов Spline Max Angle (deg) , Сплайн Макс Угол (град) Spline Max Length (px) , Сплайн Макс Длина (px) Spline Roundness , Сплайн Круглость Splines , Сплины Split Base and Detail Output , Раздельная база и детальный вывод Split Brightness / Colors , Разделенная яркость / цвета Split Details [Alpha] , Сплит Подробности [Альфа] Split Details [Gaussian] , Сплит Детали [Гаусс] Split Details [Wavelets] , Сплит детали [Вейвлеты] Sponge , Губка Spotify , Оспорить Spread , Распространение Spread Amount , Сумма спреда Spread Angles , Углы растяжения Spread Noise Amount , Количество шумов Spreading , Распространение Spring Morning , Весеннее утро Sprocket 231 , Звездочка 231 Spy 29 , Шпион 29 Square , Площадь Square (Inv.) , Квадрат (инв.) Square 1 , Квадрат 1 Square 2 , Квадрат 2 Square to Circle , Квадрат к кругу Squared-Euclidean , Квадрат-Евклидов Squares , Квадраты Squares (Outline) , Квадраты (Контур) SRGB Conversion , преобразование SRGB Stabilizer , Стабилизатор Stained Glass , Витражное стекло Stamp , Штемпель Standard , Стандартный Standard (256) , стандартный (256) Standard [No Scan] , Стандартный [Нет сканирования] Standard Deviation , Стандартное отклонение Star , Звезда Star: -5*(z^3/3-Z/4)/2 , Звезда: -5*(z^3/3-Z/4)/2 Stars , Звезды Stars (Outline) , Звёзды (Внешний вид) Start Angle , Стартовый угол Start Color , Стартовый цвет Start Frame Number , Номер стартового кадра Start of Mid-Tones , Начало средних тонов Starting Angle , Начальный угол Starting Color , Стартовый цвет Starting Feathering , Начальное перо Starting Frame , Стартовая рамка Starting Level , Начальный уровень Starting Pattern , Стартовая модель Starting Point , Начальная точка отсчёта Starting Point (%) , Начальная точка (%) Starting Scale (%) , Начальная шкала (%) Starting Value , Начальное значение Stationary Frames , Стационарные рамы Std Angle (deg.) , Стэд Угол (градус) Std Branching , ультрафиолетовое ветвление Std Length Factor (%) , Коэффициент длины удлинения (%) Std Thickness Factor (%) , Коэффициент заболеваемости (%) Stencil , Трафарет Stencil Type , тип трафарета Step , Шаг Step (%) , Шаг (%) Steps , Шаги Stereo Image , Стерео изображение Stereo Window Position , Положение стерео окна Stereographic Projection , Стереографическая проекция Stereoscopic Image Alignment , Стереоскопическое выравнивание изображений Stereoscopic Window Position , Стереоскопическое положение окна Straight , Прямой Strands , Стрэндс Streak , Полоса Street , Улица Strength , Сила Strength (%) , Прочность (%) Strength Effect , Прочностный эффект Strength Highlights , Основные сильные стороны Strength Midtones , Прочностные мидтоны Strength Shadows , Сильные Тени Stretch , Растянуть Stretch Colors , Растянутые цвета Stretch Contrast , Контраст растяжения Stretch Factor , Фактор растяжения Strip , Стриптиз Stripe Orientation , Ориентация полосы Stroke , Инсульт Stroke Angle , Угол атаки Stroke Length , Длина инсульта Stroke Strength , Прочность при ударе Structure Smoothness , Гладкость структуры Studio , Студия Studio Skin Tone Shaper , Студия Формировщик тонов кожи Style , Стиль Style Variations , Вариации стиля Stylize , Стилизировать Subdivisions , Подразделения Subpixel Interpolation , Подпиксельная интерполяция Subpixel Level , Уровень субпикселей Subsampling (%) , Субсэмплирование (%) Subtle Blue , Тонкий синий Subtle Green , Тонкий зеленый Subtle Yellow , Тонкий желтый Subtract , Вычитать Subtractive , Субтрактивный Summer , Лето Summer (alt) , Лето (alt) Sunny , Солнечный Sunny (alt) , Солнечный (alt) Sunny (rich) , Солнечный (богатый) Sunny (warm) , Солнечный (теплый) Super Warm , Супер-теплый Super Warm (rich) , Супер теплая (богатая) Super-Pixels , Суперпиксели Superformula , Суперформула Superimpose with Original? , Наложить на Оригинал? Surface Disturbance , Нарушение поверхности Surface Disturbance Multiplier , Умножитель поверхностных возмущений Sutro FX , Сутро FX Swan , Лебедь Swap , обмен Swap Colors , Смена цветов Swap Layers , Сменные слои Swap Radius / Angle , Смена радиуса / угла Swap Sides , Стороны обмена Sweet Bubblegum , Сладкая жвачка Sweet Gelatto , Сладкое желе Symmetric 2D Shape , Симметричная 2D форма Symmetry , Симметрия Symmetry Sides , Стороны симметрии Synthesis Scale , Шкала синтеза Taiga , Тайга Tan(z) , Тан(z) Tangent Radius , касательная к радиусу Taquin , Такин Target Color #1 , Цвет цели № 1 Target Color #10 , Цвет цели № 10 Target Color #11 , Цвет цели № 11 Target Color #12 , Цвет цели № 12 Target Color #13 , Цвет цели № 13 Target Color #14 , Цвет цели № 14 Target Color #15 , Цвет цели № 15 Target Color #16 , Цвет цели № 16 Target Color #17 , Цвет цели № 17 Target Color #18 , Цвет цели № 18 Target Color #19 , Цвет цели #19 Target Color #2 , Цвет цели № 2 Target Color #20 , Цвет цели №20 Target Color #21 , Цвет цели № 21 Target Color #22 , Цвет цели #22 Target Color #23 , Цвет цели № 23 Target Color #24 , Цвет цели № 24 Target Color #3 , Цвет цели № 3 Target Color #4 , Цвет цели № 4 Target Color #5 , Цвет цели № 5 Target Color #6 , Цвет цели № 6 Target Color #7 , Цвет цели #7 Target Color #8 , Цвет цели № 8 Target Color #9 , Цвет цели #9 Teal Fade , Тил Фейд Teal Magenta Gold , Пурпурное золото тел Teal Moonlight , Тил Лунный свет Teal Orange , Тил Оранж Teal Orange 1 , Тил Оранж 1 Teal Orange 2 , Тил Оранж 2 Teal Orange 3 , Тил Оранж 3 TechnicalFX - Backlight Filter , TechnicalFX - Фильтр подсветки Teddy , Тедди Teigen 28 , Тиген 28 Temperature Balance , Температурный баланс Ten Layers , Десять слоев Tends to Be Square , Склонен быть квадратом Tension Green 1 , Зеленый 1 Tension Green 2 , Зеленый 2 Tension Green 3 , Зеленый 3 Tension Green 4 , Зеленый 4 Tensor Smoothness , Тензорная гладкость Terra 4 , Терра 4 Tertiary Factor , Третичный коэффициент Tertiary Gamma , Третичная Гамма Tertiary Shift , Третичная смена Tertiary Twist , Третичный поворот Tetris , Тетрис Text , Текст Texture , Текстура Texture Enhance , Улучшение текстуры Textured Glass , Текстурированное стекло The Game of Life , Игра жизни The Matrices , Матрицы Thickness , Толщина Thickness (%) , Толщина (%) Thickness (px) , Толщина (px) Thickness Factor , Фактор толщины Thin Edges , тонкие края Thin Separators , Тонкие сепараторы Thinness , Тонкость Thinning , Истончение Thinning (Slow) , Истончение (Медленное) Three Layers , Три слоя Threshold , Порог Threshold (%) , Порог (%) Threshold Etch , Пороговое рвотное отверстие Threshold High , Пороговый максимум Threshold Low , Низкий порог Threshold Max , Пороговый максимум Threshold Mid , Пороговая середина Threshold On , Порог Thriller 2 , триллер 2 Thumbnail Size , Размер эскиза Tic-Tac-Toe , Тик-Так-Тоу Tiger , Тигр Tikhonov , Тихонов Tile Poles , Плиточные столбы Tile Size , Размер плитки Tileable Rotation , Поворот плитки Tiled Isolation , Изоляция плитки Tiled Normalization , Нормализация плитки Tiled Parameterization , Параметризация плитки Tiled Preview , Плиточный предварительный просмотр Tiled Random Shifts , Случайные смены плитки Tiled Rotation , Вращение плитки Tiles , Плитки Tiles to Layers , Плитка для укладки Tilt , Наклон Time , Время Time Step , Шаг времени Timed Image , Приуроченное изображение Tiny , Крошечный To Equirectangular , К прямоугольному To Nadir / Zenith , За Надир / Зенит Toasted Garden , Поджаренный сад Toggle to View Base Image , Переключение для просмотра базового изображения Tolerance , Толерантность Tolerance to Gaps , Толерантность к пробелам Tonal Bandwidth , Тональная полоса пропускания Tone Blur , Тональное пятно Tone Enhance , Улучшение тона Tone Gamma , Тон Гамма Tone Mapping , Картирование тонов Tone Mapping (%) , Отображение тона (%) Tone Mapping [Fast] , Tone Mapping [Быстро] Tone Mapping Fast , Быстрое отображение тонов Tone Mapping Soft , Мягкое отображение тонов Tone Presets , Тональные предустановки Tone Threshold , Порог тонов Tones Range , Диапазон тонов Tones Smoothness , Гладкость тонов Tones to Layers , Оттенки к слоям Top , Топ Top Layer , Верхний слой Top Left , Слева вверху Top Right , Верхнее право Top-Left Vertex (%) , Верхняя левая вершина (%) Top-Right Vertex (%) , Вершина вершины (%) Torus , Торус Total Layers , Тотальные слои Total Variation , Общее изменение Transfer Colors [Histogram] , Перенос цветов [Гистограмма] Transfer Colors [Patch-Based] , Перенос цветов [на основе патча] Transfer Colors [PCA] , Перенос цветов [PCA] Transfer Colors [Variational] , Перенос цветов [Вариативный] Transform , Трансформировать Transition Map , Карта перехода Transition Shape , Переходная форма Transition Smoothness , Гладкость перехода Transmittance Map , Передача Карта Transparency , Прозрачность Transparent , Прозрачный Transparent Background , Прозрачный фон Transparent Black & White , Прозрачный черно-белый Transparent Color , Прозрачный цвет Transparent on Black , Прозрачный на черном Transparent on White , Прозрачный на белом Transparent Skin , Прозрачная кожа Tree , Дерево Trent 18 , Трент 18 Triangle , Треугольник Triangles , Треугольники Triangles (Outline) , Треугольники Triangular Ha , Треугольник Ха Triangular Hb , Треугольный Hb Triangular Va , Треугольный Va Triangular Vb , Треугольный Vb Tritanomaly , Тританомалия Tritanopia , Тританопия True Colors 8 , Истинные цвета 8 Trunk Color , Цвет ствола Trunk Opacity (%) , Прозрачность ствола (%) Trunks , Стволы Tulips , Тюльпаны Tunnel , Тоннель Turbulence , Турбулентность Turbulence 2 , Турбулентность 2 Turbulent Halftone , турбулентный Хэлфтон Turing , Тьюринг Turkiest 42 , самый Туркест 42 Turn on Rotate and Twirl , Включить поворот и кручение Tweed 71 , твид 71 Twisted Rays , витые лучи Two Layers , Два слоя Two Threads , Две нити Type , Введите . Type Snowflake , Тип Снежинка Ultra Water , Ультра-Вода Unaligned Images , Неподписанные изображения Undeniable , Неоспоримый Undeniable 2 , Бесспорный 2 Underwater , Под водой Undo Anaglyph , Отменить анаглиф Uniform , Форма Unknown , Неизвестный Unsharp Mask , Резкая маска Up-Left , Слева вверх Upper Layer Is the Top Layer for All Blends , Верхний слой - это верхний слой для всех смесей. Upper Side Orientation , Верхняя боковая ориентация Uppercase Letters , заглавные буквы Upscale [DCCI2x] , Высокоуровневый [DCCI2x] Upscale [Diffusion] , Высокоуровневый [Диффузия] Upscale [Scale2x] , Шкала [Шкала 2х] Urban Cowboy , Городской ковбой Use as Hue , Использовать как оттенок Use as Saturation , Использовать в качестве насыщения Use Individual Depth Map , Использовать отдельную карту глубины Use Light , Использовать свет Use Maximum Tones , Использовать максимальные тона Use Top Layer as a Priority Mask , Использовать верхний слой как маску приоритета User-Defined , Определяемый пользователем User-Defined (Bottom Layer) , Определяемый пользователем (нижний слой) Uzbek Bukhara , узбекская Бухара Uzbek Marriage , узбекский брак Uzbek Samarcande , узбекский Самарканд V Cutoff , V обрезание Val Range , Диапазон Вэл Value , Значение Value Action , Ценностное действие Value Blending , Смешивание значений Value Bottom , Нижнее значение Value Correction , Коррекция значения Value Factor , Фактор стоимости Value Normalization , Нормализация стоимости Value Offset , Смещение значения Value Precision , Точность значения Value Range , Диапазон значений Value Scale , Шкала значений Value Shift , Сдвиг значений Value Variance , Вариация значений Values , Значения Van Gogh: Almond Blossom , Ван Гог: Цветение миндаля Van Gogh: Irises , Ван Гог: Ирисы Van Gogh: The Starry Night , Ван Гог: Звездная ночь Van Gogh: Wheat Field with Crows , Ван Гог: Пшеничное поле с воронами Variability , Переменная Variance , Вариант Variation A , Вариант А Variation B , Вариант В Variation C , Вариант С Vector Painting , векторная живопись Velocity , Скорость Velvetia , Бархат Velvia , Велвия Vertex Type , Тип вершины Vertical , Вертикальный Vertical (%) , Вертикальный (%) Vertical 1 Amount , Вертикаль 1 Количество Vertical 1 Length , Вертикаль 1 Длина Vertical 2 Amount , Вертикаль 2 Количество Vertical 2 Length , Вертикальная 2 Длина Vertical Amount , Вертикальный размер Vertical Array , Вертикальный массив Vertical Blur , Размытие по вертикали Vertical Length , Вертикальная длина Vertical Size (%) , Вертикальный размер (%) Vertical Stripes , Вертикальные полосы Vertical Tiles , Вертикальная плитка Very Course 5 , Очень курс 5 Very Fine , Очень хорошо Very High , Очень высокий Very High (Even Slower) , Очень высоко (еще медленнее) Very Warm Greenish , Очень теплый зеленоватый Vibrant (alien) , Vibrant (инопланетянин) Vibrant (contrast) , Ярко выраженный (контраст) Victory , Победа View Outlines Only , Просматривать только контуры View Resolution , Просмотр Резолюции Vignette , Виньетка Vignette Contrast , контраст виньетки Vignette Max Radius , Виньетка Макс Радиус Vignette Min Radius , Виньетка Мин Радиус Vignette Size , Размер виньетки Vignette Strength , Прочность виньетки Vignette Strenth , Виньетка Стрент Vintage , Винтаж Vintage (alt) , Винтаж (alt) Vintage (brighter) , Винтаж (ярче) Vintage 163 , винтаж 163 Vintage Chrome , Старинный хром Vintage Style , винтажный стиль Vintage Tone (%) , Винтажный тон (%) Vintage Warmth 1 , Старинная теплота 1 Vireo 37 , Вирео 37 Virtual Landscape , Виртуальный пейзаж Visible Watermark , Видимый водяной знак Vivid Edges , яркие края Vivid Edges* , Яркие края* Vivid Light , яркий свет Vivid Screen , яркий экран Wall , Стена Warhol , Уорхол Warm , Теплый Warm (highlight) , Теплый (изюминка) Warm (yellow) , Теплый (желтый) Warm Dark Contrasty , Теплый темный контраст Warm Fade , Теплое угасание Warm Fade 1 , Теплое угасание 1 Warm Neutral , Теплый нейтральный Warm Sunset Red , Теплый красный закат Warm Teal , Теплый пломбир Warm Vintage , Теплый Винтаж Warp [Interactive] , Варп [интерактивный] Warp by Intensity , искривление по интенсивности Water , Вода Waterfall , Водопад Wave(s) , Волна(и) Wavelength , Длина волны Wavelet , Вейвлет Waves Amplitude , Амплитуда волн Waves Smoothness , Гладкость волн We'll See , Посмотрим. Weird , Странный Whirl Drawing , Вихревой рисунок Whirls , Вихри White Dices , Белые кубики White Layers , Белые слои White Level , Белый уровень White on Black , Белый на черном White on Transparent , Белое на прозрачном White on Transparent Black , Белый на прозрачном черном White Point , Белая точка White to Black , От белого до черного White Walls , Белые стены Whitening , Отбеливание Whiter Whites , Белые белые Whites , Белые Width , Ширина Width (%) , Ширина (%) Wind , Ветер Winter Lighthouse , Зимний маяк Without , Без Wooden Gold 20 , Деревянное золото 20 Work on Frameset , Работа над кадрами Wrap , Обертка X Center , Центр Икс X Origine , X Оригинал X-Amplitude , X-Амплитуда X-Axis Then Y-Axis , Ось X, затем ось Y X-Centering (%) , X-Центр (%) X-Coordinate [Manual] , X-Координата [Вручную] X-Curvature , X-Курватура X-Dispersion , X-дисперсия X-End (%) , X-конце (%) X-Factor (%) , Х-фактор (%) X-Resolution , разрешение X-Resolution X-Seed (Julia) , X-Seed (Джулия) X-Shift (%) , X-сдвиг (%) X-Size (px) , X-размер (px) X-Start (%) , X-Старт (%) X-Variations , X-вариации X/Y-Ratio , X/Y-отношение X1 (none) , X1 (нет) XY Mirror , XY Зеркало XY-Amplitude , XY-амплитуда XY-Axes , XY-Оси XY-Axis , XY-ось XY-Coordinates (%) , XY-координаты (%) XY-Factor , XY-фактор Y Center , Y-центр Y Origine , Y Оригинал Y-Amplitude , Y-Амплитуда Y-Axis Then X-Axis , Y-ось потом X-ось Y-Center , Y-центр Y-Centering , Y-центр Y-Centering (%) , Y-Центр (%) Y-Coordinate , Y-координата Y-Coordinate [Manual] , Y-координата [Руководство] Y-Curvature , Y-кривая Y-Dispersion , Y-дисперсия Y-End (%) , Y-конце (%) Y-Factor , Y-Фактор Y-Factor (%) , Y-фактор (%) Y-Resolution , Резолюция Y-решение Y-Rotation , Y-ротация Y-Scale , Y-шкала Y-Seed (Julia) , Y-Seed (Джулия) Y-Shift (%) , Y-сдвиг (%) Y-Size , Y-размер Y-Size (px) , Y-размер (px) Y-Start (%) , Y-старт (%) Y-Variations , Y-варианты YAG Effect , эффект YAG YCbCr (Chroma Only) , YCbCr (только хрома) YCbCr (Distinct) , YCbCr (Отличительная черта) YCbCr (Luma Only) , YCbCr (только Luma) YCbCr (Mixed) , YCbCr (Смешанный) YCbCr [Blue Chrominance] , YCbCr [Голубая хромография] YCbCr [Blue-Red Chrominances] , YCbCr [сине-красные хроминансы] YCbCr [Green Chrominance] , YCbCr [Зеленая хромкость] YCbCr [Red Chrominance] , YCbCr [Красная Хромкость] Yellow , Жёлтый Yellow 55B , Жёлтый 55B Yellow Factor , Желтый фактор Yellow Film 01 , Желтый Фильм 01 Yellow Shift , Желтая смена Yellow Smoothness , Желтая гладкость Yellowstone , Йеллоустоун YES8 , ДА8 YIQ [chromas] , YIQ [хромы] You Can Do It , Ты можешь это сделать. YUV8 , ЮВ8 Z-Range , Z-диапазон Z-Rotation , Z-ротация Z-Scale , Z-шкала Z-Size , Z-размер Z^^6 + Z^^3 - 1 , Z^^6 + Z^3 - 1 Z^^8 + 15*z^^4 - 1 , Z^^8 + 15*z^4 - 1 Zed 32 , Зед 32 Zeke 39 , Зик 39 Zero , Ноль ZilverFX - B&W Solarization , ZilverFX - Соляризация B&W Zone System , Зональная система Zoom , Увеличить Zoom (%) , Увеличить (%) Zoom Center , Центр масштабирования Zoom Factor , коэффициент масштабирования Zoom In , Увеличить масштаб Zoom Out , Увеличить масштаб ================================================ FILE: translations/filters/gmic_qt_zh.csv ================================================ Lights & Shadows , Lights & Shadows(灯光和阴影) Stereoscopic 3D , Stereoscopic 3D(模拟3d电影) Arrays & Tiles , Arrays & Tiles(阵列和平铺) Black & White , Black & White(黑&白) Deformations , Deformations(变形器) Degradations , Degradations(画面解析特效) Frequencies , Frequencies(频谱化控制) Silhouettes , Silhouettes(剪影) Rendering , Rendering(渲染特效) Sequences , Sequences(渲染序列帧) Artistic , Artistic(艺术效果) Contours , Contours(轮廓) Patterns , Patterns(纹理效果) Details , Details(细节强调) Animals , Animals(动物剪影) Various , Various(多种特效包) Colors , Colors(颜色) Frames , Frames(艺术化相框) Layers , Layers(图层操作) Repair , Repair(修复) Nature , Nature(自然元素剪影) Others , Others(其他) Icons , Icons(图标) Misc , Misc(扩展剪影) Testing , Testing(测试(以下翻译均未校对)) Resynthetize Texture [Patch-Based] , Resynthetize Texture [Patch-Based](重新合成纹理[基于补丁]) Colorize Lineart [Smart Coloring] , Colorize Lineart [Smart Coloring](线稿着色[智能着色]) Extract Foreground [Interactive] , Extract Foreground [Interactive](提取前景[交互式]) Annular Steiner Chain Round Tile , Annular Steiner Chain Round Tile(环形施泰纳链圆形瓷砖) CLUT from After - Before Layers , CLUT from After - Before Layers(从之后-层之前进行剪切) Equirectangular to Nadir-Zenith , Equirectangular to Nadir-Zenith(等量矩形→最低-最高) Colorize Lineart [Propagation] , Colorize Lineart [Propagation](线稿着色[传播]) Kaleidoscope [Reptorian-Polar] , Kaleidoscope [Reptorian-Polar](万花筒[Reptorian极坐标]) Transfer Colors [Patch-Based] , Transfer Colors [Patch-Based](转移颜色[基于补丁]) Transfer Colors [Variational] , Transfer Colors [Variational](转移颜色[可变]) Inpaint [Transport-Diffusion] , Inpaint [Transport-Diffusion](修复[输移扩散]) Construction Material Texture , Construction Material Texture(建筑材料质地) Colorize Lineart [Auto-Fill] , Colorize Lineart [Auto-Fill](线稿着色[自动填充]) Local Variance Normalization , Local Variance Normalization(局部方差标准化) Stereoscopic Image Alignment , Stereoscopic Image Alignment(立体图像对齐) Make Seamless [Patch-Based] , Make Seamless [Patch-Based](无缝处理[补丁]) Transfer Colors [Histogram] , Transfer Colors [Histogram](转移颜色[直方图]) Sharpen [Inverse Diffusion] , Sharpen [Inverse Diffusion](锐化[逆扩散]) Sharpen [Octave Sharpening] , Sharpen [Octave Sharpening](锐化[八度锐化]) Smooth [Selective Gaussian] , Smooth [Selective Gaussian](平滑[选择性高斯]) Sinusoidal Water Distortion , Sinusoidal Water Distortion(正弦水变形) Local Contrast Enhancement , Local Contrast Enhancement(局部对比度增强) Resynthetize Texture [FFT] , Resynthetize Texture [FFT](重新合成纹理[FFT]) Equation Plot [Parametric] , Equation Plot [Parametric](方程式图[参数]) 3D Image Object [Animated] , 3D Image Object [Animated](3D贴图物体[动画]) Automatic Depth Estimation , Automatic Depth Estimation(自动深度估算) Rebuild From Similar Blocs , Rebuild From Similar Blocs(方块重建) Make Seamless [Diffusion] , Make Seamless [Diffusion](无缝处理[扩散]) Equalize Local Histograms , Equalize Local Histograms(局部直方图平衡) Sharpen [Richardson-Lucy] , Sharpen [Richardson-Lucy](锐化[Richardson-Lucy]) Iain Noise Reduction 2019 , Iain Noise Reduction 2019(Iain 降噪2019) Smooth [Geometric-Median] , Smooth [Geometric-Median](平滑[几何中值]) Colorize [with Colormap] , Colorize [with Colormap](着色[使用色表]) Color Mask [Interactive] , Color Mask [Interactive](色彩蒙版[交互]) Stereographic Projection , Stereographic Projection(立体投影) Split Details [Gaussian] , Split Details [Gaussian](细节分离(高斯)) Split Details [Wavelets] , Split Details [Wavelets](细节分离(微波)) Smooth [Total Variation] , Smooth [Total Variation](平滑[全变分]) Depth Map Reconstruction , Depth Map Reconstruction(深度图重建) Unquantize [JPEG Smooth] , Unquantize [JPEG Smooth](取消量化[JPEG平滑]) Color Abstraction Paint , Color Abstraction Paint(彩色抽象油漆画) Difference of Gaussians , Difference of Gaussians(高斯函数差分) Kaleidoscope [Symmetry] , Kaleidoscope [Symmetry](万花筒[对称]) Sharpen [Shock Filters] , Sharpen [Shock Filters](锐化[冲击滤波模型]) Gradient [Custom Shape] , Gradient [Custom Shape](渐变[自定义形状]) Mandelbrot - Julia Sets , Mandelbrot - Julia Sets(曼德勃罗-茱莉亚分形) Inpaint [Morphological] , Inpaint [Morphological](修复[形态]) Repair Scanned Document , Repair Scanned Document(修复扫描文件) Smooth [Mean-Curvature] , Smooth [Mean-Curvature](平滑[平均曲率]) 3D Elevation [Animated] , 3D Elevation [Animated](3D高度[动画]) 3D Extrusion [Animated] , 3D Extrusion [Animated](3D挤压[动画]) Single Image Stereogram , Single Image Stereogram(单图像立体图) Blur [Multidirectional] , Blur [Multidirectional](模糊[多向]) Download External Data , Download External Data(下载外部数据) Tiled Parameterization , Tiled Parameterization(平铺 参数化) Colorize [Interactive] , Colorize [Interactive](着色[交互式]) Colorize [Photographs] , Colorize [Photographs](着色[照片]) Selective Desaturation , Selective Desaturation(选择性去饱和) Kaleidoscope [Blended] , Kaleidoscope [Blended](万花筒[混合]) Dynamic Range Increase , Dynamic Range Increase(动态范围增加) Sharpen [Unsharp Mask] , Sharpen [Unsharp Mask](锐化[不锐化蒙版]) Equation Plot [Y=f(X)] , Equation Plot [Y=f(X)](方程式图[Y = f(X)]) B&W Stencil [Animated] , B&W Stencil [Animated](黑白模板[动画]) Moiré Animation , Moiré Animation(摩尔纹动画) Depth Map Construction , Depth Map Construction(深度图构建) Logarithmic Distortion , Logarithmic Distortion(对数变形) Thorn Fractal - Secant , Thorn Fractal - Secant(刺分形-割线) Array [Random Colors] , Array [Random Colors](阵列[随机颜色]) Black Crayon Graffiti , Black Crayon Graffiti(黑色蜡笔涂鸦) Polygonize [Delaunay] , Polygonize [Delaunay](多边形化[三角剖分]) Transfer Colors [PCA] , Transfer Colors [PCA](转移颜色[PCA]) Blur [Depth-Of-Field] , Blur [Depth-Of-Field](模糊[景深]) Chromatic Aberrations , Chromatic Aberrations(色彩畸变) Sharpen [Gold-Meinel] , Sharpen [Gold-Meinel](锐化[Gold-Meinel]) Split Details [Alpha] , Split Details [Alpha](细节分离[Alpha]) Random Color Ellipses , Random Color Ellipses(随机颜色椭圆) Inpaint [Multi-Scale] , Inpaint [Multi-Scale](修复[多尺度]) Inpaint [Patch-Based] , Inpaint [Patch-Based](修复[基于补丁]) Local Similarity Mask , Local Similarity Mask(局部相似度蒙版) Smooth [Perona-Malik] , Smooth [Perona-Malik](光滑[Perona-Malik扩散系数]) B&W Pencil [Animated] , B&W Pencil [Animated](黑白铅笔[动画]) Hedcut (Experimental) , Hedcut (Experimental)(减去(实验)) Simple Local Contrast , Simple Local Contrast(简单的局部对比) Kitaoka Spin Illusion , Kitaoka Spin Illusion(北冈旋转错觉) Friends Hall of Fame , Friends Hall of Fame(朋友名人堂) Posterized Dithering , Posterized Dithering(色调分离-抖动) Equalize HSI-HSL-HSV , Equalize HSI-HSL-HSV(HSI-HSL-HSV平衡) Select-Replace Color , Select-Replace Color(选择替换颜色) Morphological Filter , Morphological Filter(形态学滤波) Kaleidoscope [Polar] , Kaleidoscope [Polar](万花筒[极坐标]) Random Shade Stripes , Random Shade Stripes(随机阴影条纹) Sharpen [Multiscale] , Sharpen [Multiscale](锐化[多标准]) Gradient [from Line] , Gradient [from Line](渐变[自直线]) Bayer Reconstruction , Bayer Reconstruction(拜耳重建) Smooth [Anisotropic] , Smooth [Anisotropic](平滑[各向异性]) Smooth [Patch-Based] , Smooth [Patch-Based](平滑[基于补丁]) Lissajous [Animated] , Lissajous [Animated](利萨茹曲线/图形[动画]) Soft Glow [Animated] , Soft Glow [Animated](柔光[动画]) Normalize Brightness , Normalize Brightness(标准化亮度) Custom Code [Global] , Custom Code [Global](自定义代码[全局]) Tiled Normalization , Tiled Normalization(平铺 常规) Tiled Random Shifts , Tiled Random Shifts(平铺 随机移位) Morphology Painting , Morphology Painting(形态学绘画) Polygonize [Energy] , Polygonize [Energy](多边形化[强力]) Quadtree Variations , Quadtree Variations(四叉树变体) Simple Noise Canvas , Simple Noise Canvas(简单噪波画布) Apply External CLUT , Apply External CLUT(应用外部CLUT) Specific Saturation , Specific Saturation(特定饱和度) Cartesian Transform , Cartesian Transform(笛卡尔变换) Morph [Interactive] , Morph [Interactive](变形[互动]) Flip & Rotate Blocs , Flip & Rotate Blocs(翻转与旋转) Constrained Sharpen , Constrained Sharpen(约束锐化) Local Normalization , Local Normalization(局部标准化) Portrait Retouching , Portrait Retouching(人像修饰) Tone Mapping [Fast] , Tone Mapping [Fast](色调映射[快速]) Blend [Average All] , Blend [Average All](混合[平均所有]) Multiscale Operator , Multiscale Operator(多尺寸操作) Contrast Swiss Mask , Contrast Swiss Mask(Swiss 对比蒙版) Illuminate 2D Shape , Illuminate 2D Shape(照亮2D形状) Seamless Turbulence , Seamless Turbulence(无缝乱流) Iain's Fast Denoise , Iain's Fast Denoise(Iain 快速降噪) Red-Eye Attenuation , Red-Eye Attenuation(红眼衰减) Smooth [Thin Brush] , Smooth [Thin Brush](光滑[细笔刷]) Upscale [Diffusion] , Upscale [Diffusion](Upscale [扩散]) Rodilius [Animated] , Rodilius [Animated](十字光闪耀[动画]) Sierpinski Triangle , Sierpinski Triangle(分形-谢尔宾斯基三角形) Japanese Maple Leaf , Japanese Maple Leaf(日本枫叶) 3D Video Conversion , 3D Video Conversion(3D视频转换) Temperature Balance , Temperature Balance(色温平衡) Custom Code [Local] , Custom Code [Local](自定义代码[本地]) Export RGB-565 File , Export RGB-565 File(导出RGB-565文件) Import RGB-565 File , Import RGB-565 File(导入RGB-565文件) Circle Abstraction , Circle Abstraction(圆抽象) Boost Chromaticity , Boost Chromaticity(提高饱和度) Channel Processing , Channel Processing(通道处理) Channels to Layers , Channels to Layers(分解RGB通道到图层) Decompose Channels , Decompose Channels(分解通道) Hue Lighten-Darken , Hue Lighten-Darken(色相-亮暗) Distance Transform , Distance Transform(距离变换) Warp [Interactive] , Warp [Interactive](扭曲变形[互动]) Pyramid Processing , Pyramid Processing(金字塔处理) Crystal Background , Crystal Background(水晶背景) Gradient [Corners] , Gradient [Corners](渐变[角]) Symmetric 2D Shape , Symmetric 2D Shape(对称的2D形状) Smooth [Antialias] , Smooth [Antialias](平滑[抗锯齿]) Smooth [Bilateral] , Smooth [Bilateral](平滑[双边]) Smooth [Block PCA] , Smooth [Block PCA](平滑[PCA阻止]) Smooth [Diffusion] , Smooth [Diffusion](平滑[扩散]) Smooth [Patch-PCA] , Smooth [Patch-PCA](平滑[补丁-PCA]) 3D Text Pointcloud , 3D Text Pointcloud(3D点云) Cartoon [Animated] , Cartoon [Animated](卡通[动画]) Spatial Transition , Spatial Transition(空间转换) Sharpen [Gradient] , Sharpen [Gradient](锐化[渐变]) Turbulent Halftone , Turbulent Halftone(乱流半色调) Soft Random Shades , Soft Random Shades(柔和随机阴影) Histogram Analysis , Histogram Analysis(直方图分析) Pseudorandom Noise , Pseudorandom Noise(伪随机噪声) Denoise Smooth Alt , Denoise Smooth Alt(平滑去噪[Alt]) Grid [Triangular] , Grid [Triangular](网格[三角形]) Tileable Rotation , Tileable Rotation(无缝旋转) Diffusion Tensors , Diffusion Tensors(弥散张量) Illustration Look , Illustration Look(插图外观) Lylejk's Painting , Lylejk's Painting(Lylejk的绘画) Photoillustration , Photoillustration(摄影插图) Basic Adjustments , Basic Adjustments(基本调整) Color Temperature , Color Temperature(色温) Local Orientation , Local Orientation(局部方向) Continuous Droste , Continuous Droste(连续德罗斯特递归) Euclidean - Polar , Euclidean - Polar(欧几里得-极坐标) Old-Movie Stripes , Old-Movie Stripes(旧电影条纹) Visible Watermark , Visible Watermark(可见水印) Warp by Intensity , Warp by Intensity(强力仿射变换) Details Equalizer , Details Equalizer(细节平衡器) Sharpen [Hessian] , Sharpen [Hessian](锐化[Hessian]) Sharpen [Texture] , Sharpen [Texture](锐化[纹理]) Fourier Transform , Fourier Transform(傅里叶变换) Fourier Watermark , Fourier Watermark(傅里叶水印) 3D Colored Object , 3D Colored Object(3D彩色物体) 3D Random Objects , 3D Random Objects(3D随机物体) Gradient [Linear] , Gradient [Linear](渐变[线性]) Gradient [Radial] , Gradient [Radial](渐变[径向]) Gradient [Random] , Gradient [Random](渐变[随机]) Remove Hot Pixels , Remove Hot Pixels(去除热点) Smooth [NL-Means] , Smooth [NL-Means](平滑[非局部均值]) Smooth [Wavelets] , Smooth [Wavelets](平滑[小波]) Upscale [Scale2x] , Upscale [Scale2x](Upscale[Scale2x]) Easy Skin Retouch , Easy Skin Retouch(轻松磨皮) Guided Light Rays , Guided Light Rays(引导光线) Array [Mirrored] , Array [Mirrored](阵列[镜像]) Grid [Cartesian] , Grid [Cartesian](网格[笛卡尔]) Grid [Hexagonal] , Grid [Hexagonal](网格[六角形]) Multi-Layer Etch , Multi-Layer Etch(多层蚀刻) Circle Transform , Circle Transform(圆变换) Square to Circle , Square to Circle(方→圆) Noise [Additive] , Noise [Additive](噪音[添加剂]) Local Processing , Local Processing(局部处理) Sharpen [Deblur] , Sharpen [Deblur](锐化[去模糊]) Sharpen [Whiten] , Sharpen [Whiten](锐化[变白]) Frame [Painting] , Frame [Painting](边框[画框]) Fourier Analysis , Fourier Analysis(傅立叶分析) Blend [Seamless] , Blend [Seamless](混合[无缝]) Blend [Standard] , Blend [Standard](混合[标准]) Colors to Layers , Colors to Layers(颜色→图层) Slice Luminosity , Slice Luminosity(切割光度) Recursive Median , Recursive Median(递归中值) Edges [Animated] , Edges [Animated](边缘[动画]) Object Animation , Object Animation(物体动画) Lenticular Print , Lenticular Print(透镜印刷) Compression Blur , Compression Blur(压缩模糊) Chalk It Up [Fr] , Chalk It Up [Fr](粉笔[Fr]) Array [Regular] , Array [Regular](阵列[常规]) Extract Objects , Extract Objects(提取对象) Tiled Isolation , Tiled Isolation(平铺 隔离) Colored Pencils , Colored Pencils(彩色铅笔) Dream Smoothing , Dream Smoothing(梦幻平滑) Highlight Bloom , Highlight Bloom(仿环境光遮蔽(仿AO)) Smooth Abstract , Smooth Abstract(平滑抽象) Vector Painting , Vector Painting(矢量绘画) Desaturate Norm , Desaturate Norm(去饱和度) Pencil Portrait , Pencil Portrait(铅笔肖像) Color Blindness , Color Blindness(色盲效果) Polar Transform , Polar Transform(极坐标变换) Blur [Gaussian] , Blur [Gaussian](模糊[高斯]) Oldschool 8bits , Oldschool 8bits(旧式8bits像素) Texture Enhance , Texture Enhance(纹理增强) Frame [Pattern] , Frame [Pattern](边框[图案]) Frame [Regular] , Frame [Regular](边框[常规]) Layers to Tiles , Layers to Tiles(图层→平铺) Tiles to Layers , Tiles to Layers(平铺→图层) Tones to Layers , Tones to Layers(色调→图层) Equalize Shadow , Equalize Shadow(阴影平衡) 3D Image Object , 3D Image Object(3D贴图物体) Quick Copyright , Quick Copyright(快速版权水印) Banding Denoise , Banding Denoise(色带降噪) Inpaint [Holes] , Inpaint [Holes](修复[穿孔]) Smooth [Guided] , Smooth [Guided](平滑[引导]) Smooth [Median] , Smooth [Median](平滑[中值]) Smooth [Wiener] , Smooth [Wiener](平滑[维纳滤波]) Sharpen [Tones] , Sharpen [Tones](锐化[色调]) Halftone Shapes , Halftone Shapes(半色调形状) Popcorn Fractal , Popcorn Fractal(爆米花形) Pythagoras Tree , Pythagoras Tree(毕达哥拉斯树) Tune HSV Colors , Tune HSV Colors(调整HSV颜色) Blur [Splinter] , Blur [Splinter](模糊[碎片]) Gmicky - Roddy , Gmicky - Roddy(小妖精-罗迪) Privacy Notice , Privacy Notice(隐私声明) Array [Random] , Array [Random](阵列[随机]) Tiled Rotation , Tiled Rotation(平铺 旋转) Sharp Abstract , Sharp Abstract(锐化抽象) Threshold Etch , Threshold Etch(阈值蚀刻) Colorful Blobs , Colorful Blobs(七彩斑点) Customize CLUT , Customize CLUT(自定义CLUT) HSL Adjustment , HSL Adjustment(HSL调整) Local Contrast , Local Contrast(局部对比) Conformal Maps , Conformal Maps(保角映射) Textured Glass , Textured Glass(肌理玻璃) Blur [Angular] , Blur [Angular](模糊[旋转]) CRT Sub-Pixels , CRT Sub-Pixels(CRT子像素) JPEG Artefacts , JPEG Artefacts(JPEG像素损失) Mess with Bits , Mess with Bits(条纹干涉) Noise [Perlin] , Noise [Perlin](噪声[柏林]) Noise [Spread] , Noise [Spread](噪声[扩散]) Self Glitching , Self Glitching(噪声干扰) Freaky Details , Freaky Details(怪异的细节) Mighty Details , Mighty Details(强大的细节) Frame [Mirror] , Frame [Mirror](边框[镜面]) Frame [Smooth] , Frame [Smooth](边框[平滑]) Old Photograph , Old Photograph(旧照片) Blend [Median] , Blend [Median](混合[中值]) Dodge and Burn , Dodge and Burn(减淡与加深) Drop Shadow 3D , Drop Shadow 3D(投影3D) Canvas Texture , Canvas Texture(画布纹理) Mineral Mosaic , Mineral Mosaic(矿物镶嵌) Neon Lightning , Neon Lightning(霓虹灯闪电) Newton Fractal , Newton Fractal(牛顿分形) Equalize Light , Equalize Light(均衡光) Random Pattern , Random Pattern(随机图案) Denoise Smooth , Denoise Smooth(平滑去噪) Filter Design , Filter Design(过滤器设计) Release Notes , Release Notes(发行说明) Array [Faded] , Array [Faded](阵列[过度]) Drawn Montage , Drawn Montage(绘制蒙太奇) Graphic Boost , Graphic Boost(图画增强) Graphic Novel , Graphic Novel(图画小说) Make Squiggly , Make Squiggly(不规则线条 ) Whirl Drawing , Whirl Drawing(旋转式绘图) Black & White , Black & White(黑&白) Color Balance , Color Balance(色彩平衡) Color Grading , Color Grading(颜色分级) Color Presets , Color Presets(色调预设[LUT]) Metallic Look , Metallic Look(金属质感) Mixer [YCbCr] , Mixer [YCbCr](混合器[YCbCr]) Saturation EQ , Saturation EQ(饱和度均衡器) Simulate Film , Simulate Film(模拟电影) Vintage Style , Vintage Style(复古风格) Edges Offsets , Edges Offsets(边缘偏移) Gradient Norm , Gradient Norm(梯度范数) Blur [Linear] , Blur [Linear](模糊[线性]) Blur [Radial] , Blur [Radial](模糊[径向]) Magic Details , Magic Details(魔术细节) Frame [Fuzzy] , Frame [Fuzzy](边框[模糊]) Frame [Round] , Frame [Round](边框[圆]) Blend [Edges] , Blend [Edges](混合[边缘]) Freqy Pattern , Freqy Pattern(频率模式) Paper Texture , Paper Texture(纸张纹理) Periodic Dots , Periodic Dots(周期性点) Seamless Deco , Seamless Deco(无缝装饰) Stained Glass , Stained Glass(花窗玻璃) Deinterlace2x , Deinterlace2x(反交错2x) Pixel Denoise , Pixel Denoise(像素降噪) Smooth [IUWT] , Smooth [IUWT](平滑[IUWT]) Smooth [Skin] , Smooth [Skin](光滑[皮肤]) Edges on Fire , Edges on Fire(边缘着火) Shopping Cart , Shopping Cart(购物车) Barnsley Fern , Barnsley Fern(分形-巴恩斯利蕨) 3D Conversion , 3D Conversion(3D转换) Undo Anaglyph , Undo Anaglyph(消除立体成像) Quick Tonemap , Quick Tonemap(快速色调图) Moire Removal , Moire Removal(去除波纹) UltraWarp++++ , UltraWarp++++(超级仿射变换++++) Emboss-Relief , Emboss-Relief(浮雕) Fragment Blur , Fragment Blur(片段模糊) Denim Texture , Denim Texture(牛仔纹理) Moon2panorama , Moon2panorama(Moon2全景) Games & Demos , Games & Demos(游戏与演示) Contributors , Contributors(贡献者) Ellipsionism , Ellipsionism(椭圆主义) Finger Paint , Finger Paint(手指画) Hough Sketch , Hough Sketch(霍夫素描) Poster Edges , Poster Edges(海报边缘) Equalize HSV , Equalize HSV(HSV平衡) Mixer [CMYK] , Mixer [CMYK](混合器[CMYK]) Tone Presets , Tone Presets(色调预设) User-Defined , User-Defined(用户自定义) Gradient RGB , Gradient RGB(渐变RGB) Segmentation , Segmentation(分段) Super-Pixels , Super-Pixels(超大像素) Distort Lens , Distort Lens(镜头畸变) Blur [Bloom] , Blur [Bloom](模糊[辉光]) Mask Creator , Mask Creator(蒙版创造者) Tone Enhance , Tone Enhance(色调增强) Tone Mapping , Tone Mapping(色调映射) Frame [Blur] , Frame [Blur](边框[模糊背景]) Frame [Cube] , Frame [Cube](边框[立方体]) Align Layers , Align Layers(对齐图层) Blend [Fade] , Blend [Fade](混合[渐隐]) Morph Layers , Morph Layers(变形图层) Relief Light , Relief Light(缓和光线) Shadow Patch , Shadow Patch(阴影光斑) Bayer Filter , Bayer Filter(拜耳滤色镜) Pack Sprites , Pack Sprites(包装精灵) 3D Elevation , 3D Elevation(3D高度) 3D Extrusion , 3D Extrusion(3D挤压) Superformula , Superformula(超级方程式) Dragon Curve , Dragon Curve(分形-龙形曲线) Stereo Image , Stereo Image(立体图像) Auto Balance , Auto Balance(自动平衡) Twisted Rays , Twisted Rays(扭曲的光线) Sample Image , Sample Image(样本图像) Hypotrochoid , Hypotrochoid(圆内旋轮线) About G'MIC , About G'MIC(关于G'MIC) Hard Sketch , Hard Sketch(硬素描) Hope Poster , Hope Poster(希望海报) Pastell Art , Pastell Art(蜡笔艺术) Pen Drawing , Pen Drawing(钢笔画) B&W Stencil , B&W Stencil(黑白蜡纸) Abstraction , Abstraction(抽象化) Detect Skin , Detect Skin(检测皮肤) Mixer [HSV] , Mixer [HSV](混合器[HSV]) Mixer [Lab] , Mixer [Lab](混合器[Lab]) Mixer [PCA] , Mixer [PCA](混合器[PCA]) Mixer [RGB] , Mixer [RGB](混合器[RGB]) Zone System , Zone System(分区曝光显影系统) Perspective , Perspective(透视) Blur [Glow] , Blur [Glow](模糊[发光]) Rain & Snow , Rain & Snow(雨雪) Fade Layers , Fade Layers(渐隐图层) Drop Shadow , Drop Shadow(投影) Light Leaks , Light Leaks(漏光) Light Patch , Light Patch(光斑) Pop Shadows , Pop Shadows(流行阴影) Box Fitting , Box Fitting(随机格框) Shock Waves , Shock Waves(冲击波) Deinterlace , Deinterlace(反交错) Information , Information(信息) Barbed Wire , Barbed Wire(铁丝网) Paint Splat , Paint Splat(油漆喷溅) De-Anaglyph , De-Anaglyph(去立体化) JPEG Smooth , JPEG Smooth(JPEG平滑) Snowflake 2 , Snowflake 2(雪花2) Import Data , Import Data(导入数据) Chessboard , Chessboard(棋盘) Fractalize , Fractalize(分形) Freaky B&W , Freaky B&W(怪异的黑白) Boost-Fade , Boost-Fade(染色-褪色) Brightness , Brightness(亮度) HSV Select , HSV Select(HSV选择) Retro Fade , Retro Fade(复古褪色) Thin Edges , Thin Edges(细边) Drop Water , Drop Water(滴水) Quadrangle , Quadrangle(四边形) Reflection , Reflection(反射) Symmetrize , Symmetrize(对称化) Pixel Sort , Pixel Sort(像素序列化) DCP Dehaze , DCP Dehaze(DCP除雾) YAG Effect , YAG Effect(YAG效果) Light Glow , Light Glow(光辉) Light Rays , Light Rays(光线) Camouflage , Camouflage(迷彩伪装) Polka Dots , Polka Dots(波卡尔圆点) 3D Lathing , 3D Lathing(3D车床加工) Circle Art , Circle Art(圆形艺术) Hair Locks , Hair Locks(发绺) Shade Bobs , Shade Bobs(Shade Bobs分形) Turbulence , Turbulence(湍流) Clean Text , Clean Text(清理文本) Kookaburra , Kookaburra(笑翠鸟) Anti Alias , Anti Alias(抗锯齿) Pixel Push , Pixel Push(像素推送) Point Warp , Point Warp(点变形) Paint Daub , Paint Daub(油漆涂抹) Spiral RGB , Spiral RGB(螺旋RGB) Solve Maze , Solve Maze(求解迷宫) Sine Curve , Sine Curve(正弦曲线) Ascii Art , Ascii Art(ASCII艺术) Ministeck , Ministeck(小块拼贴(随机)) Posterize , Posterize(色调分离) Dithering , Dithering(抖动) CMYK Tone , CMYK Tone(CMYK调和) Softlight , Softlight(柔光) Curvature , Curvature(曲率) Isophotes , Isophotes(等照度线) Laplacian , Laplacian(拉普拉斯算子) Raindrops , Raindrops(雨滴) Seamcarve , Seamcarve(接缝裁剪) Add Grain , Add Grain(添加颗粒) Scanlines , Scanlines(扫描线) High Pass , High Pass(高通) Rorschach , Rorschach(罗夏) 3D Blocks , 3D Blocks(3D立方体化) Lightning , Lightning(闪电) Lissajous , Lissajous(利萨茹曲线/图形) Despeckle , Despeckle(去斑) Lava Lamp , Lava Lamp(熔岩灯) Dragonfly , Dragonfly(蜻蜓) Crosshair , Crosshair(十字准线) Australia , Australia(澳大利亚) Snowflake , Snowflake(雪花) Brushify , Brushify(笔触感) Felt Pen , Felt Pen(毡笔) Kuwahara , Kuwahara(Kuwahara滤波) Painting , Painting(油画) Rodilius , Rodilius(罗迪留斯) Shapeism , Shapeism(形状) Charcoal , Charcoal(木炭) Ink Wash , Ink Wash(油墨清洗) Colormap , Colormap(色彩映射) Contrast , Contrast(对比度) Dark Sky , Dark Sky(阴暗的天光) RGB Tone , RGB Tone(RGB调和) Convolve , Convolve(卷积) Skeleton , Skeleton(骨架) Fish-Eye , Fish-Eye(鱼眼) Spherize , Spherize(球形化) Polaroid , Polaroid(宝丽来相机) Vignette , Vignette(晕影/暗角) Bandpass , Bandpass(带通) Halftone , Halftone(半色调) Descreen , Descreen(去除网点) Solidify , Solidify(固化) Unpurple , Unpurple(去紫) 3D Tiles , 3D Tiles(3D平铺) Gum Leaf , Gum Leaf(口香糖叶) Blockism , Blockism(块面化) Nebulous , Nebulous(星云状的) Skeletik , Skeletik(骨骼/骨架) Intarsia , Intarsia(嵌花编织) Montage , Montage(蒙太奇) Cartoon , Cartoon(卡通) Stylize , Stylize(风格化) Engrave , Engrave(雕刻) Retinex , Retinex(人眼感知范围[Retinex]) Make Up , Make Up(补偿) Texture , Texture(纹理) Crystal , Crystal(水晶) Stencil , Stencil(模版) Truchet , Truchet(特鲁谢拼贴) Voronoi , Voronoi(沃罗诺伊) Rainbow , Rainbow(彩虹) Unstrip , Unstrip(去条纹) Rooster , Rooster(公鸡) Wiremap , Wiremap(线图) Anguish , Anguish(悲痛中的煎熬) Spotify , Spotify(点化) Reptile , Reptile(爬行动物鳞甲) Puzzle , Puzzle(智力拼图) Taquin , Taquin(乱序拼图) Aurora , Aurora(极光) Cubism , Cubism(立体主义) Cutout , Cutout(木刻/剪纸) Doodle , Doodle(乱画-线) Linify , Linify(绕线画/弦丝画) Sketch , Sketch(草图) Warhol , Warhol(安迪·沃霍尔) Pencil , Pencil(铅笔) Curves , Curves(曲线) Crease , Crease(皱痕) Flower , Flower(花朵) Sphere , Sphere(球) Streak , Streak(条纹) Droste , Droste(德罗斯特递归) Tunnel , Tunnel(隧道) Stroke , Stroke(描边(Stroke)) Canvas , Canvas(画布) Clouds , Clouds(云) Cracks , Cracks(裂缝) Fibers , Fibers(纤维) Hearts , Hearts(小爱心) Marble , Marble(玻璃珠) Mosaic , Mosaic(镶嵌) Op Art , Op Art(欧普艺术) Random , Random(随机) Sponge , Sponge(海绵) Tetris , Tetris(俄罗斯方块) Turing , Turing(图灵) Whirls , Whirls(回旋) Plasma , Plasma(等离子体) Emboss , Emboss(浮雕) Spiral , Spiral(螺旋) Dices , Dices(骰子) Bokeh , Bokeh(散景) Ghost , Ghost(灵魂) Stamp , Stamp(图章) Sepia , Sepia(棕褐色) Edges , Edges(边缘) Twirl , Twirl(扭曲) Water , Water(水) Dirty , Dirty(变脏) Plaid , Plaid(格子布) Satin , Satin(缎布) Stars , Stars(星星) Strip , Strip(条纹) Weave , Weave(编织) Phone , Phone(电话) Cupid , Cupid(丘比特) Heart , Heart(爱心) Disco , Disco(迪斯科(舞会灯光)) Wave , Wave(波纹) Wind , Wind(风) Zoom , Zoom(缩放) Lomo , Lomo(Lomo相机) Pack , Pack(打包) Burn , Burn(加深) Lava , Lava(熔岩) Maze , Maze(迷宫) Rays , Rays(射线) Ball , Ball(球) Tree , Tree(树) Flip , Flip(翻转) Mail , Mail(邮件) Gear , Gear(齿轮) Edge , Edge(边缘) Paw , Paw(爪子) Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio) , Gentle Mode (overrides Minimum Brightness and Minimun Red:Blue Ratio)(柔和模式(覆盖最小亮度和最小红色:蓝色比率)) Rayon Cercle Extérieur / Radius Outer Circle A (>0 W%) (<0 H%) , Rayon Cercle Extérieur / Radius Outer Circle A (>0 W%) (<0 H%)(外圈半径 A (>0 W%) (<0 H%)) Logarithmic Distortion Axis Combination for X-Axis , Logarithmic Distortion Axis Combination for X-Axis(X轴的对数失真轴组合) Logarithmic Distortion Axis Combination for Y-Axis , Logarithmic Distortion Axis Combination for Y-Axis(Y轴的对数失真轴组合) Nb Cercles Extérieurs / Circles Surrounding , Nb Cercles Extérieurs / Circles Surrounding(Nb Cercles Ext&#rieurs /周围的圆圈) Auto Set Hue Inverse (Hue Slider Is Disabled) , Auto Set Hue Inverse (Hue Slider Is Disabled)(自动设置色相反转(禁用色相滑块)) 39. Activate Butterworth Bandpass Processing , 39. Activate Butterworth Bandpass Processing(39.激活巴特沃思带通处理) 8. Quadtree Pixelisation [No Alpha Channel] , 8. Quadtree Pixelisation [No Alpha Channel](8.四叉树像素化[无Alpha通道]) Auto Reduce Level (Level Slider Is Disabled) , Auto Reduce Level (Level Slider Is Disabled)(自动降低水平(水平滑块已禁用)) Angle Décalage Des Couleurs A / Offset , Angle Décalage Des Couleurs A / Offset(色彩角度调整A) Angle Décalage Des Couleurs B / Offset , Angle Décalage Des Couleurs B / Offset(色彩角度调整B) Add User-Defined Constraints (Interactive) , Add User-Defined Constraints (Interactive)(添加用户定义的约束(交互式)) Rayon Cercle Milieu / Radius Middle Circle , Rayon Cercle Milieu / Radius Middle Circle(中圈半径) 1. Plasma Texture [Discards Input Image] , 1. Plasma Texture [Discards Input Image](1.等离子纹理[丢弃输入图像]) Add Alpha Channels to Detail Scale Layers , Add Alpha Channels to Detail Scale Layers(将Alpha通道添加到局部比例图层) Couleurs Aléatoires / Random Colors , Couleurs Aléatoires / Random Colors(随机颜色) Remove Artifacts From Micro/Macro Detail , Remove Artifacts From Micro/Macro Detail(从微观/宏观细节中删除伪像) Décalage Ombre X / Shadow Offset X , Décalage Ombre X / Shadow Offset X(阴影 偏移 X) Décalage Ombre Y / Shadow Offset Y , Décalage Ombre Y / Shadow Offset Y(阴影 偏移 Y) Logarithmic Distortion X-Axis Direction , Logarithmic Distortion X-Axis Direction(对数失真X轴方向) Logarithmic Distortion Y-Axis Direction , Logarithmic Distortion Y-Axis Direction(对数失真Y轴方向) Opacité Flocon / Opacity Snowflake , Opacité Flocon / Opacity Snowflake(雪花不透明度) 23. Self-Blending V. Original Blending , 23. Self-Blending V. Original Blending(23.自我融合V.原始融合) 24. Self-Blend V. Original Opacity (%) , 24. Self-Blend V. Original Opacity (%)(24.自混合V.不透明度(%)) Matching Precision (Smaller Is Faster) , Matching Precision (Smaller Is Faster)(匹配精度(越小越快)) Output Each Piece on a Different Layer , Output Each Piece on a Different Layer(在不同的图层上输出每个片段) Accentuation Nuances / Sharpen Shades , Accentuation Nuances / Sharpen Shades(细微差别/锐化阴影) Automatic Upscale for Optimum Results , Automatic Upscale for Optimum Results(自动升级以获得最佳结果) Display Coordinates on Preview Window , Display Coordinates on Preview Window(在预览窗口上显示坐标) Preserve Canvas for Post Bump Mapping , Preserve Canvas for Post Bump Mapping(保留画布以进行后期凹凸贴图) Maximum Red:Blue Ratio in the Fringe , Maximum Red:Blue Ratio in the Fringe(边缘中的最大红色:蓝色比率) Minimum Red:Blue Ratio in the Fringe , Minimum Red:Blue Ratio in the Fringe(边缘中的最小红色:蓝色比率) Percent of Image Half-Hypotenuse (%) , Percent of Image Half-Hypotenuse (%)(图像半斜边的百分比(%)) Render Routine for Wiggle Animations , Render Routine for Wiggle Animations(摆动动画渲染例程) Scale Style to Fit Target Resolution , Scale Style to Fit Target Resolution(缩放样式以适合目标分辨率) 4. Segmentation [No Alpha Channel] , 4. Segmentation [No Alpha Channel](4.细分[无Alpha通道]) Fit Radial End to Min/Max Dimension , Fit Radial End to Min/Max Dimension(使径向端部适合最小/最大尺寸) Keep Base Layer as Input Background , Keep Base Layer as Input Background(保持基础层作为输入背景) Keep Iterations as Different Layers , Keep Iterations as Different Layers(保持迭代为不同的层) Lock Return Scaling to Source Layer , Lock Return Scaling to Source Layer(锁定恢复尺寸到源层) Inversion Couleurs / Invert Colors , Inversion Couleurs / Invert Colors(反转Couleurs /反转颜色) Smoothen Background Reconstruction , Smoothen Background Reconstruction(简化背景重建) Angle Décalage Image Contour , Angle Décalage Image Contour(角度D和比例尺图像轮廓) Courbure Ombre / Curvature Shadow , Courbure Ombre / Curvature Shadow(曲率阴影) Douceur Ombre / Smoothness Shadow , Douceur Ombre / Smoothness Shadow(平滑阴影) Mélanges Rayons / Blend Rays , Mélanges Rayons / Blend Rays(混合光线) Nombre De Rayons / Number Of Rays , Nombre De Rayons / Number Of Rays(射线数) Output Preset as a HaldCLUT Layer , Output Preset as a HaldCLUT Layer(输出预设为HaldCLUT层) Preview Progression While Running , Preview Progression While Running(运行时预览进度) Adjust Background Reconstruction , Adjust Background Reconstruction(调整背景重建) Detail Reconstruction Smoothness , Detail Reconstruction Smoothness(细节重建平滑度) Enable Extreme Emboss or Relief? , Enable Extreme Emboss or Relief?(启用极端浮雕或浮雕?) Expand Background Reconstruction , Expand Background Reconstruction(展开背景重建) Patch Size for Synthesis (Final) , Patch Size for Synthesis (Final)(合成的补丁大小(最终)) Use Top Layer as a Priority Mask , Use Top Layer as a Priority Mask(使用顶层作为优先遮罩) Detail Reconstruction Detection , Detail Reconstruction Detection(细节重建检测) Image to Grab Color from (.Png) , Image to Grab Color from (.Png)(从(.Png)图像获取的颜色) Make Hue Depends on Region Size , Make Hue Depends on Region Size(使色调取决于区域大小) Maximal Seams per Iteration (%) , Maximal Seams per Iteration (%)(每次迭代的最大接缝(%)) Maximum Number of Output Layers , Maximum Number of Output Layers(最大输出层数) Opacité / Opacity Contours , Opacité / Opacity Contours(轮廓不透明度) Pencil Smoother Edge Protection , Pencil Smoother Edge Protection(铅笔更平滑的边缘保护) Resize Image for Optimum Effect , Resize Image for Optimum Effect(调整图像大小以获得最佳效果) Supprimer Calque / Delete Layer , Supprimer Calque / Delete Layer(删除图层) 26. Random Negation Channel(s) , 26. Random Negation Channel(s)(26.随机否定通道) 48. Activate Relief Processing , 48. Activate Relief Processing(48.激活救济处理) Angle of Main Nebulous Surface , Angle of Main Nebulous Surface(主星云面角度) Detail Reconstruction Strength , Detail Reconstruction Strength(细节重建强度) Fidelity Smoothness (Coarsest) , Fidelity Smoothness (Coarsest)(保真平滑度(最差)) Force Re-Download from Scratch , Force Re-Download from Scratch(从头开始重新下载) Influence of Color Samples (%) , Influence of Color Samples (%)(色样的影响(%)) Init. With High Gradients Only , Init. With High Gradients Only(初始化. 仅有高渐变) Invert Background / Foreground , Invert Background / Foreground(反转背景/前景) Maximum Number of Image Colors , Maximum Number of Image Colors(图像颜色的最大数量) Number of Iterations per Scale , Number of Iterations per Scale(每个尺寸的迭代次数) Painter's Edge Protection Flow , Painter's Edge Protection Flow(画家的边缘保护流量) Surface Disturbance Multiplier , Surface Disturbance Multiplier(表面扰动倍增器) 11. Quadtree Min Homogeneity , 11. Quadtree Min Homogeneity(11.四叉树最小同质性) 12. Quadtree Max Homogeneity , 12. Quadtree Max Homogeneity(12. Quadtree最大同质性) 1st Additional Palette (.Gpl) , 1st Additional Palette (.Gpl)(第一个附加调色板(.Gpl)) 22. Self-Blending Opacity (%) , 22. Self-Blending Opacity (%)(22.自混浊度(%)) 2nd Additional Palette (.Gpl) , 2nd Additional Palette (.Gpl)(第二个附加调色板(.Gpl)) Add Comment Area in HTML Page , Add Comment Area in HTML Page(在HTML页面中添加评论区域) Color 4 (Bottom/Right Corner) , Color 4 (Bottom/Right Corner)(颜色4(底/右角)) Display Debug Info on Preview , Display Debug Info on Preview(在预览中显示调试信息) Fidelity to Target (Coarsest) , Fidelity to Target (Coarsest)(保真目标(最差)) Force Tiles to Have Same Size , Force Tiles to Have Same Size(强制每块具有相同大小) Process Channels Individually , Process Channels Individually(分别处理通道) Recursions Flocon / Snowflake , Recursions Flocon / Snowflake(递归雪花) Skip to Use the Mask to Boost , Skip to Use the Mask to Boost(跳过使用面膜增强) Specify Different Output Size , Specify Different Output Size(指定不同的输出大小) -3. Normalisation Channel(s) , -3. Normalisation Channel(s)(-3. 标准化通道) Affichage / Display Contours , Affichage / Display Contours(显示轮廓) Angle of Disturbance Surface , Angle of Disturbance Surface(扰动面角度) Auto-Reduce Number of Frames , Auto-Reduce Number of Frames(自动减少帧数) Color 3 (Bottom/Left Corner) , Color 3 (Bottom/Left Corner)(颜色3(左下角)) Fast (Low Precision) Preview , Fast (Low Precision) Preview(快速(低精度)预览) Fidelity Smoothness (Finest) , Fidelity Smoothness (Finest)(保真平滑度(最佳)) Number of Matches (Coarsest) , Number of Matches (Coarsest)(匹配数目(最差)) Split Base and Detail Output , Split Base and Detail Output(拆分基本和明细输出) Stereoscopic Window Position , Stereoscopic Window Position(立体窗位置) 10. Quadtree Max Precision , 10. Quadtree Max Precision(10. Quadtree Max精度) Additional Duplicates Count , Additional Duplicates Count(额外重复计数) Anaglyph Glasses Adjustment , Anaglyph Glasses Adjustment(立体眼镜调整) Color Variation [Random -1] , Color Variation [Random -1](颜色变化[随机-1]) Cubism on Color Abstraction , Cubism on Color Abstraction(色彩抽象立体主义) Detail Reconstruction Style , Detail Reconstruction Style(细节重建风格) Distortion Surface Position , Distortion Surface Position(变形表面位置) Disturbance Scale-By-Factor , Disturbance Scale-By-Factor(干扰量表) Do Not Flatten Transparency , Do Not Flatten Transparency(不要弄平透明度) Edge Detect Includes Chroma , Edge Detect Includes Chroma(边缘检测包括色度) Feature Analyzer Smoothness , Feature Analyzer Smoothness(特征分析器平滑度) Fidelity to Target (Finest) , Fidelity to Target (Finest)(保真目标(最佳)) Keep Transparency in Output , Keep Transparency in Output(保持输出透明) LN Neightborhood-Smoothness , LN Neightborhood-Smoothness(LN 相邻-平滑) Preserve Initial Brightness , Preserve Initial Brightness(保持初始亮度) Segmentation Edge Threshold , Segmentation Edge Threshold(分割边缘阈值) Shift Linear Interpolation? , Shift Linear Interpolation?(移位线性插值?) 9. Quadtree Min Precision , 9. Quadtree Min Precision(9.四叉树最小精度) Activate Color Enhancement , Activate Color Enhancement(激活色彩增强) Enable Interpolated Motion , Enable Interpolated Motion(启用插补运动) Feature Analyzer Threshold , Feature Analyzer Threshold(特征分析器阈值) Highlights Color Intensity , Highlights Color Intensity(高光颜色强度) Highlights Crossover Point , Highlights Crossover Point(亮点交叉点) Intensity of Purple Fringe , Intensity of Purple Fringe(紫边强度) Keep Detail Layer Separate , Keep Detail Layer Separate(将细节层分开) Negative Color Abstraction , Negative Color Abstraction(负色抽象) Number of Matches (Finest) , Number of Matches (Finest)(匹配数目(最佳)) Penalize Patch Repetitions , Penalize Patch Repetitions(惩罚补丁重复) Pencil Smoother Smoothness , Pencil Smoother Smoothness(铅笔平滑平滑) Posterization Antialiasing , Posterization Antialiasing(后期化抗锯齿) Preliminary X-Axis Scaling , Preliminary X-Axis Scaling(初步X轴缩放) Preliminary Y-Axis Scaling , Preliminary Y-Axis Scaling(初步的Y轴缩放) R/B Smoothness (Principal) , R/B Smoothness (Principal)(R/B 平滑度(主要)) R/B Smoothness (Secondary) , R/B Smoothness (Secondary)(R/B 平滑度(次要)) Red - Green - Blue - Alpha , Red - Green - Blue - Alpha(红色-绿色-蓝色-Alpha) Sharpen Details in Preview , Sharpen Details in Preview(在预览中锐化细节) Superimpose with Original? , Superimpose with Original?(与原始叠加?) Activate Second Direction , Activate Second Direction(激活第二方向) Apply Transformation From , Apply Transformation From(从应用转换) Blur Dodge and Burn Layer , Blur Dodge and Burn Layer(模糊减淡和加深图层) Color 2 (Up/Right Corner) , Color 2 (Up/Right Corner)(颜色2(右上角)) Color Abstraction Opacity , Color Abstraction Opacity(颜色抽象不透明度) Higher Mask Threshold (%) , Higher Mask Threshold (%)(较高的遮罩阈值(%)) Lowlights Crossover Point , Lowlights Crossover Point(弱光交叉点) Max Angle Deviation (deg) , Max Angle Deviation (deg)(最大角度偏差(度)) Medium Details Smoothness , Medium Details Smoothness(中等细节平滑度) Min Angle Deviation (deg) , Min Angle Deviation (deg)(最小角度偏差(度)) Output as Multiple Layers , Output as Multiple Layers(输出为多层) Output as Separate Layers , Output as Separate Layers(输出为单独的图层) Output Corresponding CLUT , Output Corresponding CLUT(输出对应的CLUT) Painter's Touch Sharpness , Painter's Touch Sharpness(画家的触摸清晰度) Pencil Smoother Sharpness , Pencil Smoother Sharpness(铅笔平滑锐利) Preliminary Surface Shift , Preliminary Surface Shift(初步表面位移) Regularization Iterations , Regularization Iterations(正规化迭代) Shade Back to First Color , Shade Back to First Color(阴影回到第一种颜色) Size of Frame Numbers (%) , Size of Frame Numbers (%)(帧编号大小(%)) Toggle to View Base Image , Toggle to View Base Image(切换以查看基本图像) 3. Plasma Alpha Channel , 3. Plasma Alpha Channel(3.等离子阿尔法通道) 53. Blending Opacity (%) , 53. Blending Opacity (%)(53.混合不透明度(%)) Allow Self Intersections , Allow Self Intersections(允许自我相交) Angle Inclinaison / Tilt , Angle Inclinaison / Tilt(倾斜角度/倾斜) Avg Thickness Factor (%) , Avg Thickness Factor (%)(平均宽度系数(%)) Base Reference Dimension , Base Reference Dimension(基本参考尺寸) Color 1 (Up/Left Corner) , Color 1 (Up/Left Corner)(颜色1(左上角)) Distortion Surface Angle , Distortion Surface Angle(变形表面角度) Keep Original Image Size , Keep Original Image Size(保持原始图像大小) Lower Mask Threshold (%) , Lower Mask Threshold (%)(面罩下限(%)) Maximal Color Saturation , Maximal Color Saturation(最大色彩饱和度) Medium Details Threshold , Medium Details Threshold(中等详细信息阈值) Midtones Color Intensity , Midtones Color Intensity(中间调颜色强度) Open Interactive Preview , Open Interactive Preview(打开交互式预览) Output Region Delimiters , Output Region Delimiters(输出区域定界符) Patch Size for Synthesis , Patch Size for Synthesis(合成的补丁大小) Preserve Image Dimension , Preserve Image Dimension(保留图像尺寸) Preview Reference Circle , Preview Reference Circle(预览参考圈) Process by Blocs of Size , Process by Blocs of Size(按大小块处理) Récursions Contours , Récursions Contours(递归轮廓) Saturation Channel Gamma , Saturation Channel Gamma(饱和度通道伽玛) Smoother Edge Protection , Smoother Edge Protection(边缘平滑度) Std Thickness Factor (%) , Std Thickness Factor (%)(标准宽度系数(%)) Turn on Rotate and Twirl , Turn on Rotate and Twirl(打开旋转并旋转) Use Individual Depth Map , Use Individual Depth Map(使用个人深度图) 22. Correlated Channels , 22. Correlated Channels(22.相关通道) 34. Correlated Channels , 34. Correlated Channels(34.相关通道) Activate Pink Elephants , Activate Pink Elephants(激活粉红色大象) Activer Couleurs Formes , Activer Couleurs Formes(主动库勒形式) Activer Symmetrizoscope , Activer Symmetrizoscope(启用对称) Automatic Color Balance , Automatic Color Balance(自动色彩平衡) Bidirectional Rendering , Bidirectional Rendering(双向渲染) Blur Standard Deviation , Blur Standard Deviation(模糊标准偏差) Bottom-Right Vertex (%) , Bottom-Right Vertex (%)(右下角(%)) Custom Depth Correction , Custom Depth Correction(自定义深度校正) Fine Details Smoothness , Fine Details Smoothness(精细细节光滑度) Image Contour Dimension , Image Contour Dimension(外围图像尺寸) Minimal Color Intensity , Minimal Color Intensity(最小的色彩强度) Neighborhood Smoothness , Neighborhood Smoothness(邻域平滑度) Output Coordinates File , Output Coordinates File(输出坐标文件) Patch Size for Analysis , Patch Size for Analysis(用于分析的补丁大小) Placement of Distortion , Placement of Distortion(失真的位置) Preview Detected Shapes , Preview Detected Shapes(预览检测到的形状) Preview Frame Selection , Preview Frame Selection(预览框架选择) Segment Max Length (px) , Segment Max Length (px)(段最大长度(像素)) Segmentation Smoothness , Segmentation Smoothness(分割平滑度) Shadows Color Intensity , Shadows Color Intensity(阴影颜色强度) Type Flocon / Snowflake , Type Flocon / Snowflake(雪花类型) -2. Overall Channel(s) , -2. Overall Channel(s)(-2. 整体通道) 32. Minimum Saturation , 32. Minimum Saturation(32.最小饱和度) 33. Maximum Saturation , 33. Maximum Saturation(33.最大饱和度) 41. LP Frequency Power , 41. LP Frequency Power(41.低频电源) 42. LP Order Cube Root , 42. LP Order Cube Root(43. LP Order Cube Root) 43. HP Frequency Power , 43. HP Frequency Power(44. HP Frequency Power) 44. HP Order Cube Root , 44. HP Order Cube Root(45. HP Order Cube Root) Activate Custom Filter , Activate Custom Filter(激活自定义过滤器) Areas Light Adjustment , Areas Light Adjustment(区域调光) Autocrop Output Layers , Autocrop Output Layers(自动裁剪输出层) Avg Right Angle (deg.) , Avg Right Angle (deg.)(平均右侧角度(度)) Blue Chroma Smoothness , Blue Chroma Smoothness(蓝度平滑度) Bottom-Left Vertex (%) , Bottom-Left Vertex (%)(左下顶点(%)) Connectors Variability , Connectors Variability(接头可变性) Discard Contour Guides , Discard Contour Guides(舍弃轮廓指南) End Point Connectivity , End Point Connectivity(端点连接) Fill Transparent Holes , Fill Transparent Holes(填充透明孔洞) Fine Details Threshold , Fine Details Threshold(精细细节阈值) Flip Radial Direction? , Flip Radial Direction?(翻转径向方向?) Generic Skin Structure , Generic Skin Structure(通用皮肤结构) Highlights Abstraction , Highlights Abstraction(高光提取) Horizon Leveling (deg) , Horizon Leveling (deg)(水平较正 (度)) Input Frame Files Name , Input Frame Files Name(输入帧文件名称) Keypoint Influence (%) , Keypoint Influence (%)(关键点影响力(%)) Lenticular Density LPI , Lenticular Density LPI(晶状体密度) Lenticular Orientation , Lenticular Orientation(晶状体取向) Local Contrast Enhance , Local Contrast Enhance(局部对比度增强) Lower Side Orientation , Lower Side Orientation(下侧方向) Normalize Illumination , Normalize Illumination(标准化照明) Number of Added Frames , Number of Added Frames(添加的帧数) Number of Inter-Frames , Number of Inter-Frames(帧间数量) Number of Orientations , Number of Orientations(方向数) Opacité / Opacity , Opacité / Opacity(不透明 /不透明度) Output CLUT Resolution , Output CLUT Resolution(输出CLUT分辨率) Output Multiple Layers , Output Multiple Layers(输出多层) Output Stroke Layer On , Output Stroke Layer On(描边层位于) Position X Origine (%) , Position X Origine (%)(X原点位置(%)) Position Y Origine (%) , Position Y Origine (%)(Y原点位置(%)) Print Adjustment Marks , Print Adjustment Marks(打印调整标记) Process Top Layer Only , Process Top Layer Only(仅处理顶层) Render Multiple Frames , Render Multiple Frames(渲染多帧) Right Side Orientation , Right Side Orientation(右侧方向) Spatial Regularization , Spatial Regularization(空间正则化) Spline Max Angle (deg) , Spline Max Angle (deg)(花键最大角度(度)) Spline Max Length (px) , Spline Max Length (px)(花键最大长度(px)) Stereo Window Position , Stereo Window Position(立体窗位置) Subpixel Interpolation , Subpixel Interpolation(亚像素插值) Transparent Background , Transparent Background(透明背景) Upper Side Orientation , Upper Side Orientation(上侧方向) 1-3. Background Color , 1-3. Background Color(1-3.背景颜色) 37. Saturation Offset , 37. Saturation Offset(37.饱和度偏移) 6. Damping per Octave , 6. Damping per Octave(6.每八度阻尼) Avg Left Angle (deg.) , Avg Left Angle (deg.)(平均左侧角度(度)) Avg Length Factor (%) , Avg Length Factor (%)(平均长度系数(%)) Contour Detection (%) , Contour Detection (%)(轮廓检测(%)) Contour Normalization , Contour Normalization(轮廓标准化) Contour Threshold (%) , Contour Threshold (%)(轮廓阈值(%)) Depth Fade Out Frames , Depth Fade Out Frames(深度淡出帧) Display Blob Controls , Display Blob Controls(显示斑点控件) Effect X-Axis Scaling , Effect X-Axis Scaling(效果X轴缩放) Effect Y-Axis Scaling , Effect Y-Axis Scaling(效果Y轴缩放) Equalize at Each Step , Equalize at Each Step(在每一步均等) External Transparency , External Transparency(外部透明度) Extrapolate Colors As , Extrapolate Colors As(外推颜色为) Fidelity Chromaticity , Fidelity Chromaticity(保真色度) Flip Angle Direction? , Flip Angle Direction?(翻转角度方向?) GradienNormSmoothness , GradienNormSmoothness(渐变规范平滑) HDR Effect (Tone Map) , HDR Effect (Tone Map)(HDR效果(色调图)) Highlights Brightness , Highlights Brightness(高光亮度) Ignore Current Aspect , Ignore Current Aspect(忽略当前方面) Include Opacity Layer , Include Opacity Layer(包括不透明度层) Left / Right Blur (%) , Left / Right Blur (%)(左/右模糊(%)) Left Side Orientation , Left Side Orientation(左侧方向) LN Average-Smoothness , LN Average-Smoothness(LN 平均-光滑) Local Contrast Effect , Local Contrast Effect(局部对比效果) Local Detail Enhancer , Local Detail Enhancer(局部细节增强器) Lock Uniform Sampling , Lock Uniform Sampling(锁定均匀采样) Minimal Stroke Length , Minimal Stroke Length(最小行程) Neighborhood Size (%) , Neighborhood Size (%)(邻域大小(%)) Opacity Threshold (%) , Opacity Threshold (%)(不透明度阈值(%)) Orientation Coherence , Orientation Coherence(方向连贯性) Preview Without Alpha , Preview Without Alpha(没有Alpha的预览) Pseudo-Gray Dithering , Pseudo-Gray Dithering(伪灰色抖动) Radial Edge Behaviour , Radial Edge Behaviour(径向边缘行为) Red Chroma Smoothness , Red Chroma Smoothness(红色色度平滑度) Saturation Correction , Saturation Correction(饱和度校正) Saturation Smoothness , Saturation Smoothness(饱和度平滑度) Size for Bright Tones , Size for Bright Tones(亮色调的大小) Std Length Factor (%) , Std Length Factor (%)(标准长度系数(%)) Transition Smoothness , Transition Smoothness(过渡平滑度) X-Coordinate [Manual] , X-Coordinate [Manual](X-坐标[手动]) Y-Coordinate [Manual] , Y-Coordinate [Manual](Y-坐标[手动]) 16. Noise Channel(s) , 16. Noise Channel(s)(16.噪声通道) 19. Desaturation (%) , 19. Desaturation (%)(19.去饱和度(%)) Add Chalk Highlights , Add Chalk Highlights(添加粉笔集锦) Add Color Background , Add Color Background(添加背景色) Allow Outer Blending , Allow Outer Blending(允许外部混合) Also Match Gradients , Also Match Gradients(还可以匹配渐变) Angle Edge Behaviour , Angle Edge Behaviour(角边行为) Apply Adjustments On , Apply Adjustments On(套用调整) Apply Skin Tone Mask , Apply Skin Tone Mask(应用肤色面膜) Auto-Set Periodicity , Auto-Set Periodicity(自动设定周期) Background Intensity , Background Intensity(背景强度) Background Point (%) , Background Point (%)(背景点(%)) Blending Opacity (%) , Blending Opacity (%)(混合不透明度(%)) Border Thickness (%) , Border Thickness (%)(边框宽度(%)) Clear Control Points , Clear Control Points(清除控制点) Color Overall Effect , Color Overall Effect(色彩整体效果) Connectors Centering , Connectors Centering(接头居中) Constrain Image Size , Constrain Image Size(限制图像大小) Depth Fade In Frames , Depth Fade In Frames(深度淡入帧) Details Strength (%) , Details Strength (%)(细节强度(%)) Dimension Motif Base , Dimension Motif Base(尺寸母题库) Discard Transparency , Discard Transparency(放弃透明度) Douceur / Smoothness , Douceur / Smoothness(Douceur /平滑度) Ellipsionism Opacity , Ellipsionism Opacity(椭圆不透明度) Exponent (Imaginary) , Exponent (Imaginary)(指数(虚数)) Flat Regions Removal , Flat Regions Removal(平坦区域去除) Flou / Blur Contours , Flou / Blur Contours(模糊轮廓) Frame as a New Layer , Frame as a New Layer(框架作为新层) GradienNormLinearity , GradienNormLinearity(渐变规范线性) Highlights Lightness , Highlights Lightness(高光亮度) Highlights Selection , Highlights Selection(高光选择) Highlights Threshold , Highlights Threshold(高光阈值) Horizontal Warp Only , Horizontal Warp Only(仅水平翘曲) Invert Canvas Colors , Invert Canvas Colors(反转画布颜色) Keep Layers Separate , Keep Layers Separate(保持层分开) Kuwahara on Painting , Kuwahara on Painting(Kuwahara滤波绘画) Lightness Smoothness , Lightness Smoothness(亮度平滑度) Local Contrast Style , Local Contrast Style(局部对比风格) Luminance Smoothness , Luminance Smoothness(亮度平滑度) Moire Removal Method , Moire Removal Method(去除波纹的方法) Number of Key-Frames , Number of Key-Frames(关键帧数) Opacity as Heightmap , Opacity as Heightmap(不透明度为高度图) Painter's Smoothness , Painter's Smoothness(画家的平滑度) Pre-Defined Colormap , Pre-Defined Colormap(预设的色彩映射) Preview Progress (%) , Preview Progress (%)(预览进度(%)) Process Transparency , Process Transparency(处理透明度) Relative Block Count , Relative Block Count(相对块数) Skin Tone Protection , Skin Tone Protection(肤色保护) Skip All Other Steps , Skip All Other Steps(跳过所有其他步骤) Structure Smoothness , Structure Smoothness(结构平整度) Top-Right Vertex (%) , Top-Right Vertex (%)(右上角(%)) 17. Warp Iterations , 17. Warp Iterations(17.翘曲迭代) 21. Scale to Height , 21. Scale to Height(21.缩放到高度) 24. Warp Channel(s) , 24. Warp Channel(s)(24.翘曲通道) 25. Random Negation , 25. Random Negation(25.随机否定) 8-10. Color Balance , 8-10. Color Balance(8-10.色彩均衡) Absolute Brightness , Absolute Brightness(绝对亮度) Add Painter's Touch , Add Painter's Touch(添加画家的触摸) Analysis Smoothness , Analysis Smoothness(解析平滑度) Apply Color Balance , Apply Color Balance(应用色彩平衡) Bit Masking (Start) , Bit Masking (Start)(位屏蔽(开始)) Canaux / Channel(s) , Canaux / Channel(s)(卡诺/通道) Color Green-Magenta , Color Green-Magenta(颜色绿色-洋红色) Compress Highlights , Compress Highlights(压缩亮点) Conical Start at 0? , Conical Start at 0?(圆锥形从0开始?) Contrast Smoothness , Contrast Smoothness(对比平滑度) Correlated Channels , Correlated Channels(相关通道) Depth Field Control , Depth Field Control(深度场控制) Depth-Of-Field Type , Depth-Of-Field Type(景深类型) Destination X-Tiles , Destination X-Tiles(目标 X-块数) Destination Y-Tiles , Destination Y-Tiles(目标 Y-块数) Dimension En Pixels , Dimension En Pixels(像素尺寸) Display Coordinates , Display Coordinates(显示坐标) Enable Antialiasing , Enable Antialiasing(启用抗锯齿) Enable Segmentation , Enable Segmentation(启用细分) Far Point Deviation , Far Point Deviation(远点偏差) Gradient Smoothness , Gradient Smoothness(渐变平滑度) Horizontal Size (%) , Horizontal Size (%)(水平尺寸(%)) Invert Image Colors , Invert Image Colors(反转图像颜色) Keep Borders Square , Keep Borders Square(边界保持正方形) Keep Color Channels , Keep Color Channels(保留色彩通道) Keep Original Layer , Keep Original Layer(保留原始图层) Mask Smoothness (%) , Mask Smoothness (%)(面膜平滑度(%)) Maximum Size Factor , Maximum Size Factor(最大尺寸系数) Midtones Brightness , Midtones Brightness(中间调亮度) Minimal Region Area , Minimal Region Area(最小区域) Morphology Strength , Morphology Strength(形态强度) Parallel Processing , Parallel Processing(并行处理) Pattern Variation 1 , Pattern Variation 1(模式变化1) Pattern Variation 2 , Pattern Variation 2(模式变化2) Pattern Variation 3 , Pattern Variation 3(模式变化3) Posterization Level , Posterization Level(后期化水平) Pre-Normalize Image , Pre-Normalize Image(标准化图像) Preprocessor Radius , Preprocessor Radius(预处理半径) Preview All Outputs , Preview All Outputs(预览所有输出) Preview Grain Alone , Preview Grain Alone(仅预览颗粒(不会输出到文件)) Preview Only Shadow , Preview Only Shadow(仅预览阴影) Preview Opacity (%) , Preview Opacity (%)(预览不透明度(%)) Preview Subsampling , Preview Subsampling(预览子采样) Print Frame Numbers , Print Frame Numbers(打印帧编号) Reverse Frame Stack , Reverse Frame Stack(倒车架) Shadows Abstraction , Shadows Abstraction(阴影提取) Sharpening Strength , Sharpening Strength(锐化强度) Size for Dark Tones , Size for Dark Tones(深色调尺寸) Soften All Channels , Soften All Channels(软化所有通道) Specify HaldCLUT As , Specify HaldCLUT As(将HaldCLUT指定为) Spread Noise Amount , Spread Noise Amount(扩散噪点量) Starting Feathering , Starting Feathering(起始羽化) Strength Highlights , Strength Highlights(高光强度) Surface Disturbance , Surface Disturbance(表面扰动) Top-Left Vertex (%) , Top-Left Vertex (%)(左上角(%)) Value Normalization , Value Normalization(明度标准化) Vignette Max Radius , Vignette Max Radius(渐晕最大半径) Vignette Min Radius , Vignette Min Radius(渐晕最小半径) 18. Warp Intensity , 18. Warp Intensity(18.翘曲强度) 20. Scale to Width , 20. Scale to Width(20.缩放到宽度) 5. Edge Threshold , 5. Edge Threshold(5.边缘阈值) A-Color Smoothness , A-Color Smoothness(A色平滑度) Add as a New Layer , Add as a New Layer(添加为新层) Additional Outline , Additional Outline(附加大纲) Average Smoothness , Average Smoothness(平均平滑度) B-Color Smoothness , B-Color Smoothness(B色平滑度) Base Thickness (%) , Base Thickness (%)(基础宽度(%)) Blue Chroma Factor , Blue Chroma Factor(蓝色色度因素) Boundary Condition , Boundary Condition(边界状态) Camera Motion Only , Camera Motion Only(仅相机运动) Color Quantization , Color Quantization(颜色量化) Compression Filter , Compression Filter(压缩过滤器) Cross-Hatch Amount , Cross-Hatch Amount(交叉线数量) Custom Filter Code , Custom Filter Code(自定义过滤器代码) Déformation 1 , Déformation 1(Dé形式1) Déformation 2 , Déformation 2(Dé构成2) Damping per Octave , Damping per Octave(每倍频程阻尼) Defects Smoothness , Defects Smoothness(缺陷平滑度) Details Smoothness , Details Smoothness(细节平滑度) Dilation / Erosion , Dilation / Erosion(扩张/侵蚀) Display Color Axes , Display Color Axes(显示色轴) Edge Threshold (%) , Edge Threshold (%)(边缘阈值(%)) Enable Paintstroke , Enable Paintstroke(启用绘画描边) End Point Rate (%) , End Point Rate (%)(终点率(%)) Ending X-Centering , Ending X-Centering(结束X居中) Ending Y-Centering , Ending Y-Centering(结束Y居中) Erosion / Dilation , Erosion / Dilation(侵蚀/膨胀) Fast Approximation , Fast Approximation(快速估算) Fast Blend Preview , Fast Blend Preview(快速混合预览) Flocon / Snowflake , Flocon / Snowflake(雪花) Force Transparency , Force Transparency(强制透明) Frame Files Format , Frame Files Format(框架文件格式) Frequency Analyzer , Frequency Analyzer(频率分析仪) Gamma Compensation , Gamma Compensation(伽玛补偿) Grain (Highlights) , Grain (Highlights)(颗粒(高光)) Input Transparency , Input Transparency(输入透明度) Interpolation Type , Interpolation Type(插补类型) Magenta Smoothness , Magenta Smoothness(洋红色平滑度) Maximal Highlights , Maximal Highlights(最大亮点) Maximum Image Size , Maximum Image Size(最大影像尺寸) Maximum Saturation , Maximum Saturation(最大饱和度) Minimal Highlights , Minimal Highlights(最小亮点) Minimal Shape Area , Minimal Shape Area(最小形状面积) Minimum Brightness , Minimum Brightness(最低亮度) Nb Branches / Rays , Nb Branches / Rays(Nb分枝/射线) Number of Clusters , Number of Clusters(集群数) Outline Smoothness , Outline Smoothness(轮廓平滑度) Preprocessor Power , Preprocessor Power(预处理力度) Preserve Luminance , Preserve Luminance(保持亮度) Recover Highlights , Recover Highlights(恢复亮点) Red - Green - Blue , Red - Green - Blue(红-绿-蓝) Regularization (%) , Regularization (%)(正则化(%)) Reverse Endianness , Reverse Endianness(反向字节序) Revert Layer Order , Revert Layer Order(反排图层顺序) Shadows Brightness , Shadows Brightness(阴影亮度) Sharpen Edges Only , Sharpen Edges Only(仅锐化边缘) Skip Finest Scales , Skip Finest Scales(跳过最佳秤) Smoother Sharpness , Smoother Sharpness(平滑度) Specular Centering , Specular Centering(人u镜面反射位置) Specular Intensity , Specular Intensity(镜面反射强度) Specular Lightness , Specular Lightness(镜面反射亮度) Specular Shininess , Specular Shininess(镜面光泽) Start Frame Number , Start Frame Number(起始帧号) Start of Mid-Tones , Start of Mid-Tones(中间色调起始于) Starting Point (%) , Starting Point (%)(初始点 (%)) Starting Scale (%) , Starting Scale (%)(起始比例(%)) Stripe Orientation , Stripe Orientation(条纹方向) Tends to Be Square , Tends to Be Square(趋向于方形) View Outlines Only , View Outlines Only(仅查看轮廓) XY-Coordinates (%) , XY-Coordinates (%)(XY坐标(%)) 14. Minimum Noise , 14. Minimum Noise(14.最小噪音) 15. Maximum Noise , 15. Maximum Noise(15.最大噪音) 21. Self-Blending , 21. Self-Blending(21.自我融合) 34. Minimum Value , 34. Minimum Value(34.最小值) 35. Interpolation , 35. Interpolation(35.内插) 35. Maximum Value , 35. Maximum Value(35.最大值) 38. Blur Original , 38. Blur Original(38.模糊原始) 52. Blending Mode , 52. Blending Mode(52.混合模式) Ambient Lightness , Ambient Lightness(环境亮度) Amplitude / Angle , Amplitude / Angle(幅度 / 角度) Angular Precision , Angular Precision(角度精度) Bit Masking (End) , Bit Masking (End)(位屏蔽(结束)) Blue Chroma Shift , Blue Chroma Shift(蓝色色度偏移) Border Smoothness , Border Smoothness(边界平滑度) Canvas Brightness , Canvas Brightness(画布亮度) Center Smoothness , Center Smoothness(中心平滑度) Centering / Scale , Centering / Scale(定心/比例) Cercle / Circle D , Cercle / Circle D(Cercle / D圈) Chromaticity From , Chromaticity From(色度来源) Color Blue-Yellow , Color Blue-Yellow(颜色蓝黄色) Color Effect Mode , Color Effect Mode(色彩效果模式) Color Shading (%) , Color Shading (%)(颜色底纹(%)) Colour Space Mode , Colour Space Mode(色彩空间模式) Constraint Radius , Constraint Radius(约束半径) Contour Coherence , Contour Coherence(轮廓连贯性) Contour Precision , Contour Precision(轮廓精度) Contour Threshold , Contour Threshold(轮廓阈值) Corner Brightness , Corner Brightness(角落亮度) Couleur / Color A , Couleur / Color A(颜色A) Couleur / Color B , Couleur / Color B(颜色B) Couleur / Color C , Couleur / Color C(颜色C) Couleur / Color D , Couleur / Color D(颜色D) Couleur / Color E , Couleur / Color E(颜色E) Couleur / Color F , Couleur / Color F(颜色F) Couleur / Color G , Couleur / Color G(颜色G) Counter Clockwise , Counter Clockwise(逆时针方向) Custom Dictionary , Custom Dictionary(自定义字典) Difference Mixing , Difference Mixing(差异混合) Distortion Factor , Distortion Factor(扭曲系数) Edge Antialiasing , Edge Antialiasing(边缘抗锯齿) Enable Morphology , Enable Morphology(启用形态) Ending Feathering , Ending Feathering(终点羽化) Expanding Mirrors , Expanding Mirrors(伸缩镜) Fibers Smoothness , Fibers Smoothness(纤维平滑度) Flip Left / Right , Flip Left / Right(向左/向右翻转) Grain Tone Fading , Grain Tone Fading(颗粒值过度) HaldCLUT Filename , HaldCLUT Filename(HaldCLUT文件名) Horisontal Length , Horisontal Length(水平长度) Horizontal Amount , Horizontal Amount(水平数量) Horizontal Length , Horizontal Length(水平长度) Input Guide Color , Input Guide Color(输入指南颜色) Inverse Transform , Inverse Transform(逆变换) Invert Embossing? , Invert Embossing?(反转浮雕?) Keep Tiles Square , Keep Tiles Square(块保持正方形) Kernel Multiplier , Kernel Multiplier(内核乘数) Lightness Max (%) , Lightness Max (%)(最大亮度(%)) Lightness Min (%) , Lightness Min (%)(最低亮度(%)) Magnitude / Phase , Magnitude / Phase(幅度/相位) Match Colors With , Match Colors With(搭配颜色) Mid Tone Contrast , Mid Tone Contrast(中间色调对比) Minimal Scale (%) , Minimal Scale (%)(最小比例(%)) Number of Streaks , Number of Streaks(条纹数) Orthogonal Radius , Orthogonal Radius(正交半径) Outline Thickness , Outline Thickness(轮廓厚度) Output Ascii File , Output Ascii File(输出ASCII文件) Output Saturation , Output Saturation(输出饱和度) Output Sharpening , Output Sharpening(输出锐化) Overall Lightness , Overall Lightness(整体亮度) PhotoComix Preset , PhotoComix Preset(PhotoComix预设) Preview Precision , Preview Precision(预览精度) Preview Ref Point , Preview Ref Point(预览参考点) Preview Selection , Preview Selection(预览选择) Preview Tones Map , Preview Tones Map(预览色调图) Red Chroma Factor , Red Chroma Factor(红色色度因素) Relief Smoothness , Relief Smoothness(救济平滑度) Replacement Color , Replacement Color(更换颜色) Saturation Factor , Saturation Factor(饱和度因素) Saturation Offset , Saturation Offset(饱和度偏移) Segments Strength , Segments Strength(细分强度) Shadow Smoothness , Shadow Smoothness(阴影平滑度) Shadows Hue Shift , Shadows Hue Shift(阴影色相偏移) Shadows Lightness , Shadows Lightness(阴影亮度) Shadows Selection , Shadows Selection(阴影选择) Shadows Threshold , Shadows Threshold(阴影阈值) Sharpening Radius , Sharpening Radius(锐化半径) Skip Others Steps , Skip Others Steps(跳过其他步骤) Smoother Softness , Smoother Softness(更柔软) Sorting Criterion , Sorting Criterion(排序标准) Spatial Bandwidth , Spatial Bandwidth(空间带宽) Spatial Precision , Spatial Precision(空间精度) Spatial Tolerance , Spatial Tolerance(空间公差) Stationary Frames , Stationary Frames(固定框架) Strength Midtones , Strength Midtones(中间调强度) Tensor Smoothness , Tensor Smoothness(张量平滑度) Tolerance to Gaps , Tolerance to Gaps(容差大小) Transmittance Map , Transmittance Map(透过率图) Trunk Opacity (%) , Trunk Opacity (%)(树干不透明度(%)) Use as Saturation , Use as Saturation(用作饱和) Use Maximum Tones , Use Maximum Tones(使用最大音调) Vertical 1 Amount , Vertical 1 Amount(垂线1数量) Vertical 1 Length , Vertical 1 Length(垂线1长度) Vertical 2 Amount , Vertical 2 Amount(垂线2数量) Vertical 2 Length , Vertical 2 Length(垂线2长度) Vertical Size (%) , Vertical Size (%)(垂直尺寸(%)) Vignette Contrast , Vignette Contrast(晕影对比) Vignette Strength , Vignette Strength(渐晕强度) XY-Axis Formula S , XY-Axis Formula S(XY轴公式S) XY-Axis Formula T , XY-Axis Formula T(XY轴公式T) XY-Axis Formula U , XY-Axis Formula U(XY轴公式U) Yellow Smoothness , Yellow Smoothness(黄色平滑度) -1. Value Action , -1. Value Action(-1.动作值) 14. Value Action , 14. Value Action(14.价值行动) 15. Colour Space , 15. Colour Space(15.色彩空间) 2. Plasma Scale , 2. Plasma Scale(2.等离子量) 25. Value Action , 25. Value Action(25.价值行动) 27. Gamma Offset , 27. Gamma Offset(27.伽玛偏移) 38. Value Offset , 38. Value Offset(38.价值抵消) 40. Create Copy? , 40. Create Copy?(40.创建副本?) 45. Colour Space , 45. Colour Space(45.色彩空间) A Lot of Magenta , A Lot of Magenta(高光洋红) Activate Lizards , Activate Lizards(激活蜥蜴) Activate Slice 1 , Activate Slice 1(激活切片1) Activate Slice 2 , Activate Slice 2(激活切片2) Activate Slice 3 , Activate Slice 3(激活切片3) Activate Slice 4 , Activate Slice 4(激活切片4) Angle Dispersion , Angle Dispersion(角分散) Angle Variations , Angle Variations(角度变化) Areas Smoothness , Areas Smoothness(区域平滑度) Associated Color , Associated Color(关联颜色) Avg / Max Weight , Avg / Max Weight(平均/最大重量) Background Color , Background Color(背景颜色) Bilateral Radius , Bilateral Radius(双边半径) Blue Screen Mode , Blue Screen Mode(蓝屏模式) Color Dispersion , Color Dispersion(色散) Color Highlights , Color Highlights(高光颜色) Color Smoothness , Color Smoothness(颜色平滑度) Colour Smoothing , Colour Smoothing(颜色平滑) Computation Mode , Computation Mode(计算模式) Constrain Values , Constrain Values(约束值) Déformation , Déformation(变形) Defects Contrast , Defects Contrast(缺陷对比) Dilatation Motif , Dilatation Motif(膨胀图案) Dimension [Diff] , Dimension [Diff](尺寸[差异]) Distortion Angle , Distortion Angle(变形角度) DoNotMergeLayers , DoNotMergeLayers(不要合并图层) Edge Attenuation , Edge Attenuation(边缘衰减) Edge Sensitivity , Edge Sensitivity(边缘灵敏度) End Frame Number , End Frame Number(结束帧号) End of Mid-Tones , End of Mid-Tones(中间色调结束于) Ending Point (%) , Ending Point (%)(终止点(%)) Ending Scale (%) , Ending Scale (%)(最终比例(%)) Equalization (%) , Equalization (%)(均等化(%)) Fibers Amplitude , Fibers Amplitude(纤维强度) Fitting Function , Fitting Function(拟合函数) Flip Cross-Hatch , Flip Cross-Hatch(翻转斜线) Font Height (px) , Font Height (px)(字型高度(px)) Foreground Color , Foreground Color(前景色) Grain (Midtones) , Grain (Midtones)(颗粒(中间调)) Green Smoothness , Green Smoothness(绿色平滑度) Green Wavelength , Green Wavelength(绿色波长) Horizontal Tiles , Horizontal Tiles(水平块数) Image Smoothness , Image Smoothness(图像平滑度) Init. Resolution , Init. Resolution(初始化. 解析度) Inner Radius (%) , Inner Radius (%)(内半径(%)) Invert Luminance , Invert Luminance(反转亮度) Leaf Opacity (%) , Leaf Opacity (%)(叶片不透明度(%)) Light Smoothness , Light Smoothness(光线平滑度) Lightness Factor , Lightness Factor(亮度因素) Luminance Factor , Luminance Factor(亮度系数) Minimal Area (%) , Minimal Area (%)(最小面积(%)) Minimal Size (%) , Minimal Size (%)(最小尺寸(%)) Normalize Colors , Normalize Colors(标准化颜色) Normalize Scales , Normalize Scales(标准化比例) Number of Angles , Number of Angles(角度数) Number of Colors , Number of Colors(颜色数) Number of Frames , Number of Frames(帧数) Number of Levels , Number of Levels(等级数) Number of Scales , Number of Scales(缩放数量) Object Tolerance , Object Tolerance(物体公差) Orientation Only , Orientation Only(仅定向) Outline Contrast , Outline Contrast(轮廓对比) Output as Frames , Output as Frames(输出为帧) Output Chroma NR , Output Chroma NR(输出色度NR) Output Directory , Output Directory(输出目录) Output HTML File , Output HTML File(输出HTML文件) Output to Folder , Output to Folder(输出到文件夹) Overall Contrast , Overall Contrast(整体对比) Painting Opacity , Painting Opacity(绘画不透明度) Patch Smoothness , Patch Smoothness(补丁平滑度) Pencil Amplitude , Pencil Amplitude(铅笔幅度) Piece Complexity , Piece Complexity(块复杂度) Preview Gradient , Preview Gradient(预览渐变) Preview Original , Preview Original(预览原图) Print Size Width , Print Size Width(打印尺寸宽度) Radial Influence , Radial Influence(径向影响) Red Chroma Shift , Red Chroma Shift(红色偏移) Reference Colors , Reference Colors(参考色) Relative Warping , Relative Warping(相对扭曲) Relief Amplitude , Relief Amplitude(起伏幅度) Retouching Style , Retouching Style(修饰风格) Reverse Gradient , Reverse Gradient(反向渐变) Rotate Hue Bands , Rotate Hue Bands(旋转色相带) S-Curve Contrast , S-Curve Contrast(S形曲线对比度) Saturation Shift , Saturation Shift(饱和度偏移) Save Gradient As , Save Gradient As(将渐变另存为) Scale Variations , Scale Variations(比例变化) Secondary Factor , Secondary Factor(次级色因素) Secondary Radius , Secondary Radius(次半径) Set Frame Format , Set Frame Format(设置帧格式) Shadow Intensity , Shadow Intensity(阴影强度) Show Fill Ratio? , Show Fill Ratio?(显示填充率?) Similarity Space , Similarity Space(相似空间) Source Color #10 , Source Color #10(原始颜色 #10) Source Color #11 , Source Color #11(原始颜色 #11) Source Color #12 , Source Color #12(原始颜色 #12) Source Color #13 , Source Color #13(原始颜色 #13) Source Color #14 , Source Color #14(原始颜色 #14) Source Color #15 , Source Color #15(原始颜色 #15) Source Color #16 , Source Color #16(原始颜色 #16) Source Color #17 , Source Color #17(原始颜色 #17) Source Color #18 , Source Color #18(原始颜色 #18) Source Color #19 , Source Color #19(原始颜色 #19) Source Color #20 , Source Color #20(原始颜色 #20) Source Color #21 , Source Color #21(原始颜色 #21) Source Color #22 , Source Color #22(原始颜色 #22) Source Color #23 , Source Color #23(原始颜色 #23) Source Color #24 , Source Color #24(原始颜色 #24) Spatial Sampling , Spatial Sampling(空间采样) Spatial Variance , Spatial Variance(空间差异) Spline Roundness , Spline Roundness(样条圆度) Starting Pattern , Starting Pattern(起始模式) Std Angle (deg.) , Std Angle (deg.)(标准角度(度)) Strength Shadows , Strength Shadows(阴影强度) Stretch Contrast , Stretch Contrast(拉伸对比) Style Variations , Style Variations(样式变化) Target Color #10 , Target Color #10(目标颜色 #10) Target Color #11 , Target Color #11(目标颜色 #11) Target Color #12 , Target Color #12(目标颜色 #12) Target Color #13 , Target Color #13(目标颜色 #13) Target Color #14 , Target Color #14(目标颜色 #14) Target Color #15 , Target Color #15(目标颜色 #15) Target Color #16 , Target Color #16(目标颜色 #16) Target Color #17 , Target Color #17(目标颜色 #17) Target Color #18 , Target Color #18(目标颜色 #18) Target Color #19 , Target Color #19(目标颜色 #19) Target Color #20 , Target Color #20(目标颜色 #20) Target Color #21 , Target Color #21(目标颜色 #21) Target Color #22 , Target Color #22(目标颜色 #22) Target Color #23 , Target Color #23(目标颜色 #23) Target Color #24 , Target Color #24(目标颜色 #24) Thickness Factor , Thickness Factor(宽度系数) Tone Mapping (%) , Tone Mapping (%)(色调映射(%)) Tones Smoothness , Tones Smoothness(色调平滑度) Transition Shape , Transition Shape(过渡形状) Type Aperçu , Type Aperçu(类型预览) Value Correction , Value Correction(明度校正) Value Smoothness , Value Smoothness(明度平滑度) Vignette Strenth , Vignette Strenth(小插图强度) Vintage Tone (%) , Vintage Tone (%)(复古色调(%)) Waves Smoothness , Waves Smoothness(波浪平滑度) Work on Frameset , Work on Frameset(在帧上工作) X-Axis Formula S , X-Axis Formula S(X轴公式S) X-Axis Formula T , X-Axis Formula T(X轴公式T) X-Axis Formula U , X-Axis Formula U(X轴公式U) X-Ombre X-Shadow , X-Ombre X-Shadow(X-阴影) Y-Axis Formula S , Y-Axis Formula S(Y轴公式S) Y-Axis Formula T , Y-Axis Formula T(Y轴公式T) Y-Axis Formula U , Y-Axis Formula U(Y轴公式U) Y-Ombre Y-Shadow , Y-Ombre Y-Shadow(Y-阴影) 19. Warp Offset , 19. Warp Offset(19.翘曲偏移) 30. Minimum Hue , 30. Minimum Hue(30.最小色相) 31. Maximum Hue , 31. Maximum Hue(31.最大色相) 47. Makeup Gain , 47. Makeup Gain(47.化妆增益) A Lot of Yellow , A Lot of Yellow(高光黄色) Activate Mirror , Activate Mirror(启用镜像) Activate Shakes , Activate Shakes(激活震动) Add 1px Outline , Add 1px Outline(添加1px轮廓) Add Image Label , Add Image Label(添加图像标签) Area Smoothness , Area Smoothness(区域平滑度) Blend Threshold , Blend Threshold(混合阈值) Blue Smoothness , Blue Smoothness(蓝色平滑度) Blue Wavelength , Blue Wavelength(蓝色波长) Blur Percentage , Blur Percentage(模糊百分比) Canvas Darkness , Canvas Darkness(画布暗度) Color Intensity , Color Intensity(色彩强度) Color Rendering , Color Rendering(显色) Color Tolerance , Color Tolerance(颜色容差) Colored Outline , Colored Outline(彩色轮廓) Colour Channels , Colour Channels(色彩通道) Control Point 1 , Control Point 1(控制点1) Control Point 2 , Control Point 2(控制点2) Control Point 3 , Control Point 3(控制点3) Control Point 4 , Control Point 4(控制点4) Control Point 5 , Control Point 5(控制点5) Control Point 6 , Control Point 6(控制点6) Couleur / Color , Couleur / Color(库勒/颜色) Cyan Smoothness , Cyan Smoothness(青色平滑度) Debug Font Size , Debug Font Size(调试字体大小) Defects Density , Defects Density(缺陷密度) Destination (%) , Destination (%)(目标(%)) Detail Strength , Detail Strength(细节强度) Dilate Contours , Dilate Contours(扩张轮廓) Edge Behavior X , Edge Behavior X(边缘行为X) Edge Behavior Y , Edge Behavior Y(边缘行为Y) Edge Simplicity , Edge Simplicity(边缘简化) Edge Smoothness , Edge Smoothness(边缘平滑度) Effect Strength , Effect Strength(效果强度) Enhance Details , Enhance Details(增强细节) Exponent (Real) , Exponent (Real)(指数(实数)) Flip Left/Right , Flip Left/Right(左右翻转) Frequency Range , Frequency Range(频率范围) Gamma Equalizer , Gamma Equalizer(伽玛均衡) Gradient Preset , Gradient Preset(渐变预设) Grain (Shadows) , Grain (Shadows)(颗粒(阴影)) Green Rotations , Green Rotations(绿色旋转) Highlights Zone , Highlights Zone(高光区) Horizontal Blur , Horizontal Blur(水平模糊) IncreaseChroma1 , IncreaseChroma1(增加色度1) Initial Density , Initial Density(初始密度) Itérations , Itérations(迭代次数) Level Frequency , Level Frequency(等级频率) Light Direction , Light Direction(灯光方向) Lightness Level , Lightness Level(亮度等级) Lightness Shift , Lightness Shift(亮度偏移) Limit Hue Range , Limit Hue Range(极限色相范围) Luminance Level , Luminance Level(亮度等级) Luminance Shift , Luminance Shift(亮度偏移) Luminosity Type , Luminosity Type(光度类型) Modeler / Shape , Modeler / Shape(造型师/造型) Motion Analyzer , Motion Analyzer(运动分析仪) Negative Colors , Negative Colors(负色) Negative Effect , Negative Effect(负面影响) No Transparency , No Transparency(没有透明度) Normalize Input , Normalize Input(标准化输入) Number of Sizes , Number of Sizes(尺寸数) Number of Teeth , Number of Teeth(齿数) Number of Tones , Number of Tones(色调数量) Outline Opacity , Outline Opacity(轮廓不透明度) Output as Files , Output as Files(输出为文件) Output Filename , Output Filename(输出文件名) Piece Size (px) , Piece Size (px)(块大小(像素)) Preserve Alpha? , Preserve Alpha?(保留Alpha?) Preview Mapping , Preview Mapping(预览映射) Print Size Unit , Print Size Unit(打印尺寸单位) Processing Mode , Processing Mode(处理方式) Quantize Colors , Quantize Colors(量化色彩) Résolution , Résolution(Ré解决方案) Radius [Manual] , Radius [Manual](半径[手动]) Recover Shadows , Recover Shadows(恢复阴影) Recursion Depth , Recursion Depth(递归深度) Reference Color , Reference Color(参考色) Relief Contrast , Relief Contrast(救济对比) Resolution (px) , Resolution (px)(解析度(px)) Retourner Motif , Retourner Motif(Retourner主题) Secondary Color , Secondary Color(次要颜色) Secondary Gamma , Secondary Gamma(次级色伽玛) Secondary Shift , Secondary Shift(次级色偏移) Secondary Twist , Secondary Twist(次级色转变) Shadow Contrast , Shadow Contrast(阴影对比) Sharpening Type , Sharpening Type(锐化类型) Show Both Poles , Show Both Poles(显示两极) Show Difference , Show Difference(显示差异) Skin Estimation , Skin Estimation(皮肤估计) Smart Threshold , Smart Threshold(智能阈值) Smoothing Style , Smoothing Style(平滑风格) Smoothness (px) , Smoothness (px)(平滑度(px)) Smoothness Type , Smoothness Type(平滑度类型) Source Color #1 , Source Color #1(原始颜色 #1) Source Color #2 , Source Color #2(原始颜色 #2) Source Color #3 , Source Color #3(原始颜色 #3) Source Color #4 , Source Color #4(原始颜色 #4) Source Color #5 , Source Color #5(原始颜色 #5) Source Color #6 , Source Color #6(原始颜色 #6) Source Color #7 , Source Color #7(原始颜色 #7) Source Color #8 , Source Color #8(原始颜色 #8) Source Color #9 , Source Color #9(原始颜色 #9) Spatial Overlap , Spatial Overlap(空间重叠) Special Effects , Special Effects(特殊效果) SRGB Conversion , SRGB Conversion(SRGB转换) Strength Effect , Strength Effect(影响强度) Stroke Strength , Stroke Strength(笔触强度) Subsampling (%) , Subsampling (%)(二次采样(%)) Synthesis Scale , Synthesis Scale(整体缩放) Target Color #1 , Target Color #1(目标颜色 #1) Target Color #2 , Target Color #2(目标颜色 #2) Target Color #3 , Target Color #3(目标颜色 #3) Target Color #4 , Target Color #4(目标颜色 #4) Target Color #5 , Target Color #5(目标颜色 #5) Target Color #6 , Target Color #6(目标颜色 #6) Target Color #7 , Target Color #7(目标颜色 #7) Target Color #8 , Target Color #8(目标颜色 #8) Target Color #9 , Target Color #9(目标颜色 #9) Tertiary Factor , Tertiary Factor(三级色因素) Thin Separators , Thin Separators(薄分离器) Tonal Bandwidth , Tonal Bandwidth(色调带宽) Value Precision , Value Precision(数值精度) Vertical Amount , Vertical Amount(垂直数量) Vertical Length , Vertical Length(垂直长度) View Resolution , View Resolution(预览质量) Waves Amplitude , Waves Amplitude(波幅) X-Centering (%) , X-Centering (%)(X-中心 (%)) Y-Centering (%) , Y-Centering (%)(Y中心(%)) 12. Noise Type , 12. Noise Type(12.噪音类型) 13. Channel(s) , 13. Channel(s)(13.通道) 13. Noise Type , 13. Noise Type(13.噪音类型) 28. Hue Offset , 28. Hue Offset(28.色相偏移) 36. Hue Offset , 36. Hue Offset(36.色相偏移) 37. Channel(s) , 37. Channel(s)(37.通道) 51. Smoothness , 51. Smoothness(51.平滑度) 6. Smoothness , 6. Smoothness(6.平滑度) A-Color Factor , A-Color Factor(A色因素) Absolute Value , Absolute Value(绝对值) Alignment Type , Alignment Type(对齐方式) Analysis Scale , Analysis Scale(解析规模) Auto-Threshold , Auto-Threshold(自动阈值) B-Color Factor , B-Color Factor(B色因素) Blindness Type , Blindness Type(失明类型) Blue Rotations , Blue Rotations(蓝色旋转) Blur Amplitude , Blur Amplitude(模糊幅度) Blur Precision , Blur Precision(模糊精度) Boost Contrast , Boost Contrast(增强对比度) Border Opacity , Border Opacity(边界不透明度) Border Outline , Border Outline(边框轮廓) Boundaries (%) , Boundaries (%)(边界(%)) Brightness (%) , Brightness (%)(亮度(%)) Center X-Shift , Center X-Shift(中心X-位移) Center Y-Shift , Center Y-Shift(中心Y-位移) Centers Radius , Centers Radius(中心半径) Color Blending , Color Blending(色彩混合) Color Channels , Color Channels(色彩通道) Color Midtones , Color Midtones(中间调颜色) Color Strength , Color Strength(色彩强度) Custom Formula , Custom Formula(自定义公式) Darkness Level , Darkness Level(暗度等级) Desaturate (%) , Desaturate (%)(降低饱和度 (%)) Descent Method , Descent Method(下降法) Details Amount , Details Amount(明细金额) Diffuse Shadow , Diffuse Shadow(弥漫阴影) Dodge Strength , Dodge Strength(减淡力度) Edge Influence , Edge Influence(边缘影响) Edge Thickness , Edge Thickness(边缘宽度) Edge Threshold , Edge Threshold(边缘阈值) Enhance Detail , Enhance Detail(增强细节) Expand Shadows , Expand Shadows(扩大阴影) Fade Start (%) , Fade Start (%)(淡出开始(%)) Filled Circles , Filled Circles(实心圆) Flip Tolerance , Flip Tolerance(翻转容差) Fractal Points , Fractal Points(分形点) G'MIC Operator , G'MIC Operator(G'MIC操作员) G/M Smoothness , G/M Smoothness(G/M 平滑度) Grid Divisions , Grid Divisions(网格划分) Grid Smoothing , Grid Smoothing(网格平滑) High Frequency , High Frequency(高频) Highlights Hue , Highlights Hue(高光色相) Horizontal (%) , Horizontal (%)(水平(%)) Hue Smoothness , Hue Smoothness(色相平滑度) Initialization , Initialization(初始化) Key Frame Rate , Key Frame Rate(关键帧速率) Key Smoothness , Key Smoothness(黑色平滑度) Light Strength , Light Strength(光强度) Lighting Angle , Lighting Angle(光照角度) Line Precision , Line Precision(线精度) Little Magenta , Little Magenta(阴影洋红) LN Amplititude , LN Amplititude(LN 幅度) Magenta Factor , Magenta Factor(洋红色系数) Max Iterations , Max Iterations(最大迭代) Max Length (%) , Max Length (%)(最长长度 (%)) Max Offset (%) , Max Offset (%)(最大偏移量(%)) Maximal Radius , Maximal Radius(最大半径) Merging Option , Merging Option(合并选项) Mid-Light Grey , Mid-Light Grey(中浅灰色) Midpoint Shift , Midpoint Shift(中点偏移) Min Length (%) , Min Length (%)(最小长度(%)) Min Offset (%) , Min Offset (%)(最小偏移量(%)) Minimal Radius , Minimal Radius(最小半径) MorphoStrenght , MorphoStrenght(变形强度) Ombre / Shadow , Ombre / Shadow(阴影) Opacity Factor , Opacity Factor(不透明度系数) Patch Variance , Patch Variance(补丁差异) Pattern Height , Pattern Height(图案高度) Pattern Weight , Pattern Weight(图案重量) Position X (%) , Position X (%)(位置X(%)) Position Y (%) , Position Y (%)(位置Y(%)) Post-Normalize , Post-Normalize(后标准化) Précision , Précision(精密切割) Preserve Edges , Preserve Edges(保留边缘) Preview Guides , Preview Guides(预览指南) Primary Factor , Primary Factor(主要色因素) Primary Radius , Primary Radius(主半径) Radius / Angle , Radius / Angle(半径/角度) Red Smoothness , Red Smoothness(红色平滑度) Red Wavelength , Red Wavelength(红色波长) Reduce Redness , Reduce Redness(减少发红) Regularity (%) , Regularity (%)(规律性(%)) Regularization , Regularization(规范化) Rendering Mode , Rendering Mode(渲染模式) Resolution (%) , Resolution (%)(解析度 (%)) Return Scaling , Return Scaling(恢复尺寸) Reverse Effect , Reverse Effect(反作用) Reverse Motion , Reverse Motion(反向运动) Right Position , Right Position(右侧起始位置) Saturation (%) , Saturation (%)(饱和度(%)) Scaling Factor , Scaling Factor(换算系数) Scene Selector , Scene Selector(场景选择器) Selected Color , Selected Color(所选颜色) Shade Strength , Shade Strength(阴影强度) Sharpen Object , Sharpen Object(锐化对象) Sharpen Radius , Sharpen Radius(锐化半径) Sharpen Shades , Sharpen Shades(锐化阴影) Show Watershed , Show Watershed(显示分水岭) Shuffle Pieces , Shuffle Pieces(洗牌) Skip This Step , Skip This Step(跳过这一步) Smooth Looping , Smooth Looping(平滑循环) Smoothing Type , Smoothing Type(平滑类型) Smoothness (%) , Smoothness (%)(平滑度(%)) Source X-Tiles , Source X-Tiles(源 X-块数) Source Y-Tiles , Source Y-Tiles(源 Y-块数) Spatial Metric , Spatial Metric(空间度量) Spatial Radius , Spatial Radius(空间半径) Specular Light , Specular Light(镜面光) Starting Angle , Starting Angle(起始角度) Starting Color , Starting Color(起始颜色) Starting Frame , Starting Frame(起始帧) Starting Level , Starting Level(起始级别) Starting Point , Starting Point(初始点) Starting Value , Starting Value(起始值) Stretch Colors , Stretch Colors(拉伸颜色) Stretch Factor , Stretch Factor(拉伸系数) Subpixel Level , Subpixel Level(亚像素级) Symmetry Sides , Symmetry Sides(对称面) Tangent Radius , Tangent Radius(切线半径) Tertiary Gamma , Tertiary Gamma(三级色伽玛) Tertiary Shift , Tertiary Shift(三级色偏移) Tertiary Twist , Tertiary Twist(三级色转变) Thickness (px) , Thickness (px)(厚度(像素)) Threshold High , Threshold High(阈值 高) Thumbnail Size , Thumbnail Size(缩图大小) Tone Threshold , Tone Threshold(色调阈值) Value Blending , Value Blending(明度混合) Value Variance , Value Variance(数值差异) Vertical Tiles , Vertical Tiles(垂直块数) X-Seed (Julia) , X-Seed (Julia)(X-种子(朱莉娅)) Y-Seed (Julia) , Y-Seed (Julia)(Y-种子(朱莉娅)) -4. Normalise , -4. Normalise(-4. 标准化) 0. Recompute , 0. Recompute(0.重新计算) 11. Amplitude , 11. Amplitude(11.幅度) 15. Channel 1 , 15. Channel 1(15.通道1) 16. Channel 2 , 16. Channel 2(16.通道2) 17. Channel 3 , 17. Channel 3(17.通道3) 18. Normalise , 18. Normalise(18.标准化) 1st Parameter , 1st Parameter(第一个参数) 26. Number #1 , 26. Number #1(26.第一名) 27. Number #2 , 27. Number #2(27. 2号) 28. Equalize? , 28. Equalize?(28.相等?) 29. Normalise , 29. Normalise(29.规范化) 2nd Parameter , 2nd Parameter(第二参数) 3D Image Type , 3D Image Type(3D影像类型) 3rd Parameter , 3rd Parameter(第三参数) 50. Depth (%) , 50. Depth (%)(50.深度(%)) A Lot of Cyan , A Lot of Cyan(青色高光) A-Color Shift , A-Color Shift(A色偏移) Amplitude (%) , Amplitude (%)(幅度(%)) Angular Tiles , Angular Tiles(角数) Anti-Aliasing , Anti-Aliasing(抗锯齿) Anti-Ghosting , Anti-Ghosting(防重影) Apply Relief? , Apply Relief?(申请救济?) Avg Branching , Avg Branching(平均分支) B-Color Shift , B-Color Shift(B色偏移) Balance Color , Balance Color(平衡顔色) Blending Mode , Blending Mode(混合模式) Blending Size , Blending Size(混合尺寸) Blob 10 Color , Blob 10 Color(斑点10 颜色) Blob 11 Color , Blob 11 Color(斑点11 颜色) Blob 12 Color , Blob 12 Color(斑点12 颜色) Blur Strength , Blur Strength(模糊强度) Blur the Mask , Blur the Mask(模糊蒙版) Bright Length , Bright Length(亮长度) Bruit / Noise , Bruit / Noise(杂色) Burn Strength , Burn Strength(加深强度) Centering (%) , Centering (%)(居中(%)) Centers Color , Centers Color(中心色) Color Shadows , Color Shadows(阴影颜色) Colored Grain , Colored Grain(着色颗粒) Colorize Mode , Colorize Mode(上色模式) Colormap Type , Colormap Type(色彩映射类型) Couleur Denim , Couleur Denim(Couleur牛仔布) Curved Stroke , Curved Stroke(弯曲笔触) Custom Kernel , Custom Kernel(自定义内核) Custom Layout , Custom Layout(自定义布局) Details Scale , Details Scale(细节大小) Dimension (%) , Dimension (%)(尺寸 (%)) Disturbance X , Disturbance X(扰动X) Disturbance Y , Disturbance Y(扰动Y) Dither Output , Dither Output(抖动输出) Edge Exponent , Edge Exponent(边缘指数) Edge Fidelity , Edge Fidelity(边缘保真度) Elevation (%) , Elevation (%)(海拔(%)) Ellipse Ratio , Ellipse Ratio(椭圆比率) Frames Offset , Frames Offset(帧偏移) Frequency (%) , Frequency (%)(频率 (%)) Highlight (%) , Highlight (%)(高光(%)) Interpolation , Interpolation(插值) Left Position , Left Position(左侧起始位置) Lighten Edges , Lighten Edges(亮化边缘) Lightness (%) , Lightness (%)(亮度(%)) Little Yellow , Little Yellow(阴影黄) Lookup Factor , Lookup Factor(查找因子) Low Frequency , Low Frequency(低频) Magenta Shift , Magenta Shift(洋红色偏移) Mask Contrast , Mask Contrast(遮罩对比) Mask Dilation , Mask Dilation(蒙版扩张) MasterOpacity , MasterOpacity(主不透明度) Max Threshold , Max Threshold(最大阈值) Maximal Value , Maximal Value(最大值) Median Radius , Median Radius(中值半径) Merge Layers? , Merge Layers?(合并图层?) Merging Steps , Merging Steps(相融) Mid-Dark Grey , Mid-Dark Grey(中深灰色) Min Threshold , Min Threshold(最小阈值) Minimal Value , Minimal Value(最小值) Mirror Effect , Mirror Effect(镜面效果) Neutral Color , Neutral Color(中性色) Non-Linearity , Non-Linearity(非线性度) Normalization , Normalization(标准化) Opacity Gamma , Opacity Gamma(不透明度伽玛) Outline Color , Outline Color(轮廓色) Output Folder , Output Folder(导出目录) Output Format , Output Format(输出格式) Output Frames , Output Frames(输出帧) Output Height , Output Height(输出高度) Output Layers , Output Layers(输出层) Outside Color , Outside Color(外部颜色) Patch Measure , Patch Measure(修补措施) Pattern Angle , Pattern Angle(图案角度) Pattern Width , Pattern Width(图案宽度) Pole Rotation , Pole Rotation(极旋转) Pre-Normalize , Pre-Normalize(预标准化) Precision (%) , Precision (%)(精度(%)) Preview Bands , Preview Bands(预览色相滑条) Preview Brush , Preview Brush(预览笔刷) Preview Shape , Preview Shape(预览形状) Preview Shows , Preview Shows(预览显示) Preview Split , Preview Split(预览分割) Primary Angle , Primary Angle(主角度) Primary Color , Primary Color(原色) Primary Gamma , Primary Gamma(主要色伽玛) Primary Shift , Primary Shift(主要色偏移) Primary Twist , Primary Twist(主要色转变) Quick Enlarge , Quick Enlarge(快速放大) Random Colors , Random Colors(随机颜色) Red Rotations , Red Rotations(红色旋转) Relative Size , Relative Size(相对尺寸) Reverse Order , Reverse Order(相反的顺序) Revert Layers , Revert Layers(反排图层) Screen Border , Screen Border(屏幕边框) Second Offset , Second Offset(垂直偏移) Second Radius , Second Radius(第二半径) Serial Number , Serial Number(序列号) Size Variance , Size Variance(尺寸差异) Smooth Amount , Smooth Amount(平滑度) Smooth Colors , Smooth Colors(平滑的色彩) Spatial Scale , Spatial Scale(空间尺寸) Specular Size , Specular Size(镜面反射尺寸) Spread Amount , Spread Amount(扩散量) Spread Angles , Spread Angles(扩散角度) Std Branching , Std Branching(标准分支) Stroke Length , Stroke Length(笔划长度) Surface Angle , Surface Angle(表面角度) Taille / Size , Taille / Size(字样/大小) Thickness (%) , Thickness (%)(宽度(%)) Threshold (%) , Threshold (%)(阈值(%)) Threshold Low , Threshold Low(阈值 低) Threshold Max , Threshold Max(最大阈值) Threshold Mid , Threshold Mid(阈值中) Tiled Preview , Tiled Preview(平铺预览) Vertical Blur , Vertical Blur(垂直模糊) Very Course 5 , Very Course 5(非常课程5) Vignette Size , Vignette Size(渐晕大小) XY-Axis Mode? , XY-Axis Mode?(XY轴模式?) Yellow Factor , Yellow Factor(黄色因素) 1st Variance , 1st Variance(第一方差) 23. Boundary , 23. Boundary(23.边界) 2nd Variance , 2nd Variance(第二方差) 30. X-Factor , 30. X-Factor(30. X-系数) 31. Y-Factor , 31. Y-Factor(31. Y-系数) 32. X-Offset , 32. X-Offset(32. X-偏移) 34. Y-Offset , 34. Y-Offset(34. Y-偏移) 36. Boundary , 36. Boundary(36.边界) 46. Absolute , 46. Absolute(46.绝对的) A Lot of Key , A Lot of Key(高光白色) Acceleration , Acceleration(加速) Angle (deg.) , Angle (deg.)(角度(度)) Angle / Size , Angle / Size(角度/大小) Antialiasing , Antialiasing(抗锯齿) Aspect Ratio , Aspect Ratio(长宽比) Balance SRGB , Balance SRGB(平衡SRGB) Blend Scales , Blend Scales(混合尺寸) Blob 1 Color , Blob 1 Color(斑点1 颜色) Blob 2 Color , Blob 2 Color(斑点2 颜色) Blob 3 Color , Blob 3 Color(斑点3 颜色) Blob 4 Color , Blob 4 Color(斑点4 颜色) Blob 5 Color , Blob 5 Color(斑点5 颜色) Blob 6 Color , Blob 6 Color(斑点6 颜色) Blob 7 Color , Blob 7 Color(斑点7 颜色) Blob 8 Color , Blob 8 Color(斑点8 颜色) Blob 9 Color , Blob 9 Color(斑点9 颜色) Boost Smooth , Boost Smooth(提升平滑度) Boost Stroke , Boost Stroke(增强笔触) Border Color , Border Color(边框颜色) Border Width , Border Width(边框宽度) Bristle Size , Bristle Size(笔毛大小) Canvas Color , Canvas Color(画布颜色) CLUT Opacity , CLUT Opacity(CLUT不透明度) Coefficients , Coefficients(系数) Color Median , Color Median(颜色中位数) Color Metric , Color Metric(颜色指标) Colour Model , Colour Model(颜色模型) Connectivity , Connectivity(连接性) Contrast (%) , Contrast (%)(对比度(%)) Curve Amount , Curve Amount(曲线量) Curve Length , Curve Length(曲线长度) Cycle Layers , Cycle Layers(轮转图层) Defects Size , Defects Size(缺陷尺寸) Detail Level , Detail Level(详细等级) Detail Scale , Detail Scale(细节比例) DOF Analyzer , DOF Analyzer(自由度分析仪) Drawing Mode , Drawing Mode(绘图模式) Ending Angle , Ending Angle(结束角度) Ending Color , Ending Color(终止颜色) Ending Value , Ending Value(终点值) Equalization , Equalization(均衡) Fade End (%) , Fade End (%)(淡出结束(%)) Fading Shape , Fading Shape(外形衰减) Fill Holes % , Fill Holes %(填充孔洞%) First Offset , First Offset(水平偏移) First Radius , First Radius(第一半径) Frame Format , Frame Format(帧格式) Green Factor , Green Factor(绿色因素) Hyper Droste , Hyper Droste(超级德罗斯特) Image Weight , Image Weight(图像重量) Inner Fading , Inner Fading(内部淡出) Inner Length , Inner Length(内长) Inner Radius , Inner Radius(内半径) Input Folder , Input Folder(输入文件夹) Input Layers , Input Layers(输入层) Inside Color , Inside Color(内部颜色) Inter-Frames , Inter-Frames(中间帧数) Line Opacity , Line Opacity(线不透明度) Little Green , Little Green(阴影绿色) LN Amplitude , LN Amplitude(LN振幅) Mascot Image , Mascot Image(吉祥物图片) Maximal Area , Maximal Area(最大面积) Maximal Size , Maximal Size(最大尺寸) Merging Mode , Merging Mode(合并模式) Middle Scale , Middle Scale(中明度等级) Midtones Hue , Midtones Hue(中间调色相) Minimal Area , Minimal Area(最小面积) Minimal Size , Minimal Size(最小尺寸) Modulo Value , Modulo Value(模值) Montage Type , Montage Type(蒙太奇类型) Netteté , Netteté(内特é) Object Ratio , Object Ratio(物体比例) Opacity Gain , Opacity Gain(不透明度增益) Orientations , Orientations(方向) Ouline Color , Ouline Color(棕褐色) Outer Fading , Outer Fading(外部淡出) Outer Length , Outer Length(外长) Outer Radius , Outer Radius(外半径) Outline Size , Outline Size(轮廓宽度) Output Files , Output Files(输出文件) Output Width , Output Width(输出宽度) Overall Blur , Overall Blur(整体模糊) Padding (px) , Padding (px)(填充(px)) Paint Effect , Paint Effect(绘画效果) Pattern Type , Pattern Type(模式类型) Perturbation , Perturbation(扰动) Post-Process , Post-Process(后期过程) Preview Data , Preview Data(预览数据) Preview Grid , Preview Grid(预览网格) Preview Mask , Preview Mask(预览蒙版) Preview Time , Preview Time(预览时间) Preview Type , Preview Type(预览类型) Quantization , Quantization(量化) Random Angle , Random Angle(随机角度) Reduce Halos , Reduce Halos(减少光晕) Reduce Noise , Reduce Noise(减少噪音) Regular Grid , Regular Grid(常规网格) Reverse Flip , Reverse Flip(反向翻转) Scale Factor , Scale Factor(缩放) Scale Output , Scale Output(比例输出) Scale Plasma , Scale Plasma(鳞等离子) Second Color , Second Color(第二色) Shadows Zone , Shadows Zone(阴影区) Soften Guide , Soften Guide(软化指南) Some Magenta , Some Magenta(中间调洋红) Specular (%) , Specular (%)(镜面反射 (%)) Stencil Type , Stencil Type(模板类型) Strength (%) , Strength (%)(强度(%)) Stroke Angle , Stroke Angle(笔划角度) Subdivisions , Subdivisions(细分) Threshold On , Threshold On(阈值开启) Total Layers , Total Layers(总层数) Transparency , Transparency(透明度) Value Action , Value Action(明度行为) Value Bottom , Value Bottom(最低明度) Value Factor , Value Factor(明度因素) Value Offset , Value Offset(明度偏移) Vertical (%) , Vertical (%)(垂直(%)) White Layers , White Layers(白色层) X-Coordinate , X-Coordinate(X坐标) X-Dispersion , X-Dispersion(X-色散) X-Factor (%) , X-Factor (%)(X-系数 (%)) X-Multiplier , X-Multiplier(X-乘数) X-Offset (%) , X-Offset (%)(X-偏移 (%)) X-Resolution , X-Resolution(X-分辨率) X-Shift (px) , X-Shift (px)(X-位移(px)) X-Smoothness , X-Smoothness(X平滑度) X-Variations , X-Variations(X-变化) XY-Amplitude , XY-Amplitude(XY振幅) Y-Coordinate , Y-Coordinate(Y坐标) Y-Dispersion , Y-Dispersion(Y-色散) Y-Factor (%) , Y-Factor (%)(Y-系数 (%)) Y-Multiplier , Y-Multiplier(Y-乘数) Y-Offset (%) , Y-Offset (%)(Y-偏移(%)) Y-Resolution , Y-Resolution(Y-分辨率) Y-Shift (px) , Y-Shift (px)(Y-位移(px)) Y-Smoothness , Y-Smoothness(Y平滑度) Y-Variations , Y-Variations(Y-变化) Yellow Shift , Yellow Shift(黄色偏移) Z-Multiplier , Z-Multiplier(Z-乘数) 1st X-Coord , 1st X-Coord(第一X坐标) 1st Y-Coord , 1st Y-Coord(第一个Y坐标) 29. Negate? , 29. Negate?(29.否定?) 2nd X-Coord , 2nd X-Coord(第二X坐标) 2nd Y-Coord , 2nd Y-Coord(第二个Y坐标) 3rd X-Coord , 3rd X-Coord(第三X坐标) 3rd Y-Coord , 3rd Y-Coord(第三个Y坐标) Allow Angle , Allow Angle(允许角度) Ambient (%) , Ambient (%)(环境 (%)) Angle (deg) , Angle (deg)(角度(度)) Angle Range , Angle Range(角度范围) Attenuation , Attenuation(衰减) BG Textured , BG Textured(BG纹理) Black Level , Black Level(黑阶) Black Point , Black Point(黑点) Blend Decay , Blend Decay(混合衰变) Blue Factor , Blue Factor(蓝色因素) Blur Amount , Blur Amount(模糊量) Blur Factor , Blur Factor(模糊系数) Bottom Size , Bottom Size(底面尺寸) Bump Factor , Bump Factor(凹凸系数) Canal Alpha , Canal Alpha(Alpha通道) Center Help , Center Help(中心帮助) Center Size , Center Size(中心尺寸) Color Angle , Color Angle(色角) Color Basis , Color Basis(颜色基准) Color Boost , Color Boost(色彩提升) Color Gamma , Color Gamma(颜色伽玛) Color Image , Color Image(彩色图像) Color Model , Color Model(颜色模型) Color Space , Color Space(色彩空间) Cool / Warm , Cool / Warm(冷/暖) Curve Angle , Curve Angle(曲线角度) Cyan Factor , Cyan Factor(青色因素) Dark Length , Dark Length(暗长) Density (%) , Density (%)(密度%) Diffuse (%) , Diffuse (%)(扩散度(%)) Diffusivity , Diffusivity(扩散性) Expand Size , Expand Size(扩大尺寸) Fast Resize , Fast Resize(快速调整大小) FFT Preview , FFT Preview(FFT预览) Fibrousness , Fibrousness(纤维性) Finger Size , Finger Size(手指大小) First Color , First Color(第一色) Flou / Blur , Flou / Blur(模糊/模糊) Folder Name , Folder Name(文件夹名称) Font Colors , Font Colors(字体颜色) Fractal Set , Fractal Set(分形集) Frame Color , Frame Color(镜框颜色) Frame Width , Frame Width(框架宽度) Grain Scale , Grain Scale(颗粒大小) Granularity , Granularity(粒度) Green Level , Green Level(绿色等级) Green Shift , Green Shift(绿色偏移) Homogeneity , Homogeneity(同质性) Hue Max (%) , Hue Max (%)(色相最大(%)) Hue Min (%) , Hue Min (%)(顺化(%)) Inner Shade , Inner Shade(内部阴影) Invert Blur , Invert Blur(反转模糊) Invert Mask , Invert Mask(反面罩) Keep Colors , Keep Colors(保持色彩) Keep Detail , Keep Detail(保持细节) Light Angle , Light Angle(发光角度) Light Color , Light Color(浅色) Little Blue , Little Blue(阴影蓝色) Little Cyan , Little Cyan(阴影青色) Lookup Size , Lookup Size(查找大小) Loop Method , Loop Method(循环法) Max Cut (%) , Max Cut (%)(最大切割(%)) Middle Grey , Middle Grey(中灰) Min Cut (%) , Min Cut (%)(最小切割(%)) Mixer Style , Mixer Style(混合样式) Noise Level , Noise Level(噪点等级) Noise Scale , Noise Scale(噪点大小) Oddness (%) , Oddness (%)(奇异度(%)) Opacity (%) , Opacity (%)(不透明度(%)) Orientation , Orientation(方向) Outline (%) , Outline (%)(轮廓 (%)) Output CLUT , Output CLUT(输出CLUT) Output Mode , Output Mode(输出方式) Output Type , Output Type(输出类型) Overlap (%) , Overlap (%)(交叠 (%)) Pencil Size , Pencil Size(铅笔大小) Pencil Type , Pencil Type(铅笔类型) Periodicity , Periodicity(周期性) Point Width , Point Width(点宽) Pre-Process , Pre-Process(前处理) Propagation , Propagation(扩展) Quality (%) , Quality (%)(质量(%)) Random Seed , Random Seed(随机种子) Relief Size , Relief Size(起伏尺寸) Remove Tile , Remove Tile(移除一块) Result Type , Result Type(结果类型) Right Slope , Right Slope(右侧斜度) Rotate Tree , Rotate Tree(旋转树) Second Size , Second Size(第二尺寸) Sensitivity , Sensitivity(灵敏度) Shade Angle , Shade Angle(阴影角度) Shading (%) , Shading (%)(阴影(%)) Shadow Size , Shadow Size(阴影大小) Shift Point , Shift Point(换档点) Some Yellow , Some Yellow(中间调黄) Sort Colors , Sort Colors(排序颜色) Start Angle , Start Angle(起始角度) Start Color , Start Color(起始色) Swap Colors , Swap Colors(交换颜色) Swap Layers , Swap Layers(交换层) Tones Range , Tones Range(色调范围) Trunk Color , Trunk Color(树干颜色) Value Range , Value Range(取值范围) Value Scale , Value Scale(亮度尺寸) Value Shift , Value Shift(明度偏移) Variability , Variability(变化性) Variation A , Variation A(变量A) Variation B , Variation B(变量B) Variation C , Variation C(变量C) Vertex Type , Vertex Type(顶点类型) White Level , White Level(白阶) White Point , White Point(白点) X-Amplitude , X-Amplitude(X-幅度) X-Centering , X-Centering(X中心) X-Curvature , X-Curvature(X曲率) X-Shift (%) , X-Shift (%)(X-位移(%)) X-Size (px) , X-Size (px)(X-尺寸 (像素)) X-Start (%) , X-Start (%)(X-起始 (%)) Y-Amplitude , Y-Amplitude(Y-幅度) Y-Centering , Y-Centering(Y中心) Y-Curvature , Y-Curvature(Y形曲率) Y-Shift (%) , Y-Shift (%)(Y-位移 (%)) Y-Size (px) , Y-Size (px)(Y-尺寸 (像素)) Y-Start (%) , Y-Start (%)(Y-起始 (%)) Zoom Center , Zoom Center(缩放中心 ) Zoom Factor , Zoom Factor(缩放系数) 10th Color , 10th Color(颜色10) 5. Octaves , 5. Octaves(5.八度) Action #10 , Action #10(动作 #10) Action #11 , Action #11(动作 #11) Action #12 , Action #12(动作 #12) Action #13 , Action #13(动作 #13) Action #14 , Action #14(动作 #14) Action #15 , Action #15(动作 #15) Action #16 , Action #16(动作 #16) Action #17 , Action #17(动作 #17) Action #18 , Action #18(动作 #18) Action #19 , Action #19(动作 #19) Action #20 , Action #20(动作 #20) Action #21 , Action #21(动作 #21) Action #22 , Action #22(动作 #22) Action #23 , Action #23(动作 #23) Action #24 , Action #24(动作 #24) Alpha Mode , Alpha Mode(字母模式) Anisotropy , Anisotropy(各向异性) Apply Mask , Apply Mask(涂面膜) Array Mode , Array Mode(阵列模式) Background , Background(背景) Band Width , Band Width(色彩滑条宽度) Base Scale , Base Scale(基本比例) Blend Mode , Blend Mode(混合模式) Blend Size , Blend Size(混合尺寸) Blue Level , Blue Level(蓝色等级) Blue Shift , Blue Shift(蓝色偏移) Blur Alpha , Blur Alpha(模糊Alpha) Blur Frame , Blur Frame(模糊框) Blur Shade , Blur Shade(模糊阴影) Center (%) , Center (%)(中心 (%)) Channel #1 , Channel #1(通道#1) Channel #2 , Channel #2(通道#2) Channel #3 , Channel #3(通道#3) Channel(s) , Channel(s)(通道) Color Mode , Color Mode(色彩模式) Colorspace , Colorspace(色彩空间) Components , Components(组件) Cyan Shift , Cyan Shift(青色偏移) Dark Color , Dark Color(深色) Decoration , Decoration(装饰) Desaturate , Desaturate(去饱和) Dilatation , Dilatation(扩张) Dodge Blur , Dodge Blur(减淡模糊) Duplicates , Duplicates(重复项) Edge Shade , Edge Shade(边缘阴影) Etch Tones , Etch Tones(蚀刻色调) Expression , Expression(表达式) Extend 1px , Extend 1px(延伸1px) Fade Start , Fade Start(淡出开始) Feathering , Feathering(羽化) Fill Holes , Fill Holes(填充孔洞) Fine Scale , Fine Scale(精细比例) First Size , First Size(第一尺寸) Flat Color , Flat Color(平面颜色) Force Gray , Force Gray(强制灰色) Frame (px) , Frame (px)(边框(px)) Frame Size , Frame Size(边框大小) Frame Skip , Frame Skip(跳帧) Frame Type , Frame Type(镜框类型) Grain Type , Grain Type(颗粒类型) Grid Width , Grid Width(网格宽度) Grow Alpha , Grow Alpha(扩大Alpha) H Variable , H Variable(H变量) Height (%) , Height (%)(高度 (%)) High Scale , High Scale(高明度等级) High Value , High Value(高明度) Highlights , Highlights(高光) Hue Factor , Hue Factor(色相因素) Hue Offset , Hue Offset(色相偏移) Init. Type , Init. Type(初始化. 类型) Input Type , Input Type(输入类型) Inversions , Inversions(反转) Iterations , Iterations(迭代) K Variable , K Variable(K变量) Key Factor , Key Factor(黑色因素) Leaf Color , Leaf Color(叶片颜色) Left Slope , Left Slope(左侧斜度) Light Grey , Light Grey(浅灰色) Light Type , Light Type(光类型) Little Key , Little Key(阴影黑色) Little Red , Little Red(阴影红色) Margin (%) , Margin (%)(页边空白 (%)) Mask Color , Mask Color(蒙版颜色) Max Radius , Max Radius(最大半径) Mid Offset , Mid Offset(中偏移) Min Area % , Min Area %(最小面积%) Min Radius , Min Radius(最小半径) Mixed Mode , Mixed Mode(混合模式) Mixer Mode , Mixer Mode(混合模式) Monochrome , Monochrome(单色) Much Green , Much Green(高光绿色) Multiplier , Multiplier(乘数) Near Black , Near Black(近黑) Noise Type , Noise Type(杂点类型) Offset (%) , Offset (%)(偏移(%)) Only Leafs , Only Leafs(只有叶子) Oversample , Oversample(过采样) Patch Size , Patch Size(补丁大小) Post-Gamma , Post-Gamma(后伽玛) Process As , Process As(处理为) Proportion , Proportion(比例) Push Point , Push Point(推点) Radius (%) , Radius (%)(半径(%)) Radius Cut , Radius Cut(半径分割(%)) Randomness , Randomness(随机性) Recursions , Recursions(递归) Red Factor , Red Factor(红色因素) Reduce RAM , Reduce RAM(降低内存占用) Refraction , Refraction(折射) Regularity , Regularity(规律性) Reset View , Reset View(重置视图) Resolution , Resolution(解析度) Sat Bottom , Sat Bottom(最低饱和度) Saturation , Saturation(饱和度) Sharpening , Sharpening(锐化) Show Frame , Show Frame(展示框) Smoothness , Smoothness(平滑度) Some Green , Some Green(中间调绿色) Source (%) , Source (%)(源 (%)) Stabilizer , Stabilizer(稳定器) Swap Sides , Swap Sides(互换面) Tile Poles , Tile Poles(平铺极坐标) Tone Gamma , Tone Gamma(色调伽玛) Use as Hue , Use as Hue(用作色相) Wavelength , Wavelength(波长) X-Rotation , X-Rotation(X-旋转) Y-Rotation , Y-Rotation(Y-旋转) Z-Rotation , Z-Rotation(Z-旋转) 1st Color , 1st Color(颜色1) 2nd Color , 2nd Color(颜色2) 3rd Color , 3rd Color(颜色3) 4. Radius , 4. Radius(4.半径) 49. Angle , 49. Angle(49.角度) 4th Color , 4th Color(颜色4) 5th Color , 5th Color(颜色5) 6th Color , 6th Color(颜色6) 7th Color , 7th Color(颜色7) 8th Color , 8th Color(颜色8) 9th Color , 9th Color(颜色9) Action #1 , Action #1(动作 #1) Action #2 , Action #2(动作 #2) Action #3 , Action #3(动作 #3) Action #4 , Action #4(动作 #4) Action #5 , Action #5(动作 #5) Action #6 , Action #6(动作 #6) Action #7 , Action #7(动作 #7) Action #8 , Action #8(动作 #8) Action #9 , Action #9(动作 #9) Algorithm , Algorithm(算法) Amplitude , Amplitude(幅度) Angle (%) , Angle (%)(角度(%)) Angle Cut , Angle Cut(角度分割(%)) Auto Crop , Auto Crop(自动裁切) Bandwidth , Bandwidth(波长) Blob Size , Blob Size(斑点大小) Bloc Size , Bloc Size(群组大小) Brighness , Brighness(亮度) Burn Blur , Burn Blur(加深模糊) Cell Size , Cell Size(像元大小) Coherence , Coherence(连贯性) Colorbase , Colorbase(色基) Dark Grey , Dark Grey(深灰色) Depth (%) , Depth (%)(深度(%)) Deviation , Deviation(偏差) Direction , Direction(方向) Edges (%) , Edges (%)(边(%)) Elevation , Elevation(海拔) End Color , End Color(终止色) Frequency , Frequency(频率) Fuzzyness , Fuzzyness(模糊性) Gamma (%) , Gamma (%)(伽玛(%)) Greyscale , Greyscale(灰度) Guide Mix , Guide Mix(参考混合) Highlight , Highlight(高光) Hue Range , Hue Range(色相范围) Hue Shift , Hue Shift(色相偏移) Intensity , Intensity(强度) Iteration , Iteration(迭代) Key Shift , Key Shift(黑色偏移) Landscape , Landscape(景观) Leak Type , Leak Type(泄漏类型) Lightness , Lightness(亮度) Linearity , Linearity(线性度) Low Scale , Low Scale(低明度等级) Low Value , Low Value(低明度) LUTs Pack , LUTs Pack(LUT包) Map Tones , Map Tones(地图色调) Mask Size , Mask Size(蒙版尺寸) Mask Type , Mask Type(口罩类型) Max Angle , Max Angle(最大角度) Max Curve , Max Curve(最大曲线) Maze Type , Maze Type(迷宫类型) Much Blue , Much Blue(高光蓝色) Normalize , Normalize(标准化) Output As , Output As(输出为) Overshoot , Overshoot(过冲) Placement , Placement(放置) Plot Type , Plot Type(绘制类型) Pole Long , Pole Long(极长) Pre-Gamma , Pre-Gamma(伽玛前) Precision , Precision(精度) Randomize , Randomize(随机化) Red Level , Red Level(红色等级) Red Shift , Red Shift(红色偏移) Reference , Reference(参考) Rendering , Rendering(渲染) Rescaling , Rescaling(重新缩放) Reversing , Reversing(倒车) Rotations , Rotations(旋转) Roundness , Roundness(圆度) Sat Range , Sat Range(饱和度范围) Scale (%) , Scale (%)(尺寸) Select By , Select By(选择依据) Selection , Selection(选拔) Sharpness , Sharpness(锐度) Shininess , Shininess(光泽度) Show Grid , Show Grid(显示网格) Smoothing , Smoothing(平滑处理) Some Blue , Some Blue(中间调蓝色) Some Cyan , Some Cyan(中间调青色) Spreading , Spreading(传播) Thickness , Thickness(宽度) Threshold , Threshold(阈值) Tile Size , Tile Size(瓷砖尺寸) Time Step , Time Step(计算步长) Tolerance , Tolerance(容差) Tone Blur , Tone Blur(色调模糊) Transform , Transform(变形方式) Use Light , Use Light(使用光) Val Range , Val Range(明度范围) Value Top , Value Top(最高明度) Very Fine , Very Fine(很好) Width (%) , Width (%)(宽度(%)) X Origine , X Origine(X 起点) X-Balance , X-Balance(X平衡) X-End (%) , X-End (%)(X-结束(%)) X-Warping , X-Warping(X-扭曲) X/Y-Ratio , X/Y-Ratio(X/Y-比率) XY-Factor , XY-Factor(XY-系数) Y Origine , Y Origine(Y 起点) Y-Balance , Y-Balance(平衡) Y-End (%) , Y-End (%)(Y-结束 (%)) Y-Warping , Y-Warping(Y-扭曲) 1 Levels , 1 Levels(1级) 1st Text , 1st Text(第一个文字) 1st Tone , 1st Tone(色调1) 2nd Text , 2nd Text(第二文字) 2nd Tone , 2nd Tone(色调2) 3rd Tone , 3rd Tone(色调3) 4th Tone , 4th Tone(色调4) 5th Tone , 5th Tone(色调5) 6th Tone , 6th Tone(色调6) 7. Blur , 7. Blur(7.模糊) 7th Tone , 7th Tone(色调7) 8th Tone , 8th Tone(色调8) Aliasing , Aliasing(混叠) Autocrop , Autocrop(自动裁剪) Boundary , Boundary(边界) Branches , Branches(分支) Camera X , Camera X(相机 X) Camera Y , Camera Y(相机 Y) Category , Category(类别) Center X , Center X(X中心) Center Y , Center Y(Y中心) Channels , Channels(通道) Circle C , Circle C(C圈) Coloring , Coloring(染色) Contours , Contours(轮廓) Course 4 , Course 4(课程4) Crop (%) , Crop (%)(裁剪 (%)) Cut High , Cut High(切高) Darkness , Darkness(暗度) Dilation , Dilation(扩张) Distance , Distance(距离) Dot Size , Dot Size(点尺寸) Duration , Duration(持续时间) Equalize , Equalize(均衡) Exponent , Exponent(指数) Exposure , Exposure(接触) Fade End , Fade End(淡出结束) Filename , Filename(文件名) Flatness , Flatness(平整度) Geometry , Geometry(几何) Guide As , Guide As(引导为) H Cutoff , H Cutoff(H 界限) Hue Band , Hue Band(色相滑条) K-Factor , K-Factor(K-因子) Lighting , Lighting(亮度) Low Bias , Low Bias(低偏见) Max Area , Max Area(最大面积) Medium 3 , Medium 3(中等3) Mid Grey , Mid Grey(中灰) Midpoint , Midpoint(中点) Much Red , Much Red(高光红色) Negation , Negation(求非/负色) Negative , Negative(负色) Operator , Operator(操作员) Opposing , Opposing(相对) Order By , Order By(排序依据) Point #0 , Point #0(点0) Point #1 , Point #1(点1) Point #2 , Point #2(点2) Point #3 , Point #3(点3) Pole Lat , Pole Lat(极点) Position , Position(位置) Recovery , Recovery(恢复) Sampling , Sampling(采样) Segments , Segments(段数) Sharpest , Sharpest(最锐利) Size (%) , Size (%)(尺寸(%)) Some Key , Some Key(中间调灰色) Some Red , Some Red(中间调红色) Specular , Specular(镜面反射) Step (%) , Step (%)(步 (%)) Strength , Strength(强度) Sublevel , Sublevel(子级别) Symmetry , Symmetry(对称) Thinness , Thinness(宽度) Thinning , Thinning(细化) V Cutoff , V Cutoff(V 界限) Variance , Variance(方差) Velocity , Velocity(速度) X Center , X Center(X中心) X-Border , X-Border(X边界) X-Center , X-Center(X中心) X-Factor , X-Factor(X-系数) X-Motion , X-Motion(X-移动) X-Offset , X-Offset(X-偏移) X-Shadow , X-Shadow(X-阴影) XY-Light , XY-Light(XY-光) Y Center , Y Center(Y中心) Y-Border , Y-Border(Y边界) Y-Center , Y-Center(Y中心) Y-Factor , Y-Factor(Y-系数) Y-Motion , Y-Motion(Y-移动) Y-Offset , Y-Offset(Y-偏移) Y-Shadow , Y-Shadow(Y-阴影) Z-Motion , Z-Motion(Z-移动) Z-Offset , Z-Offset(Z-偏移) Zoom (%) , Zoom (%)(缩放(%)) Zoom Out , Zoom Out(缩小) 2 Noise , 2 Noise(2噪音) 2x Type , 2x Type(2x类型) 7. Mode , 7. Mode(7.模式) A-Value , A-Value(A-值) Azimuth , Azimuth(方位角) Balance , Balance(平衡) Charset , Charset(字符集) Clarity , Clarity(清晰度) Closeup , Closeup(特写) Color 1 , Color 1(颜色1) Color 2 , Color 2(颜色2) Color 3 , Color 3(颜色3) Color 4 , Color 4(颜色4) Cut Low , Cut Low(切低) Density , Density(密度) Details , Details(细节) Filling , Filling(填充) Formula , Formula(公式) Hue (%) , Hue (%)(色相(%)) Inverse , Inverse(倒数) Light-X , Light-X(光-X) Light-Y , Light-Y(光-Y) Light-Z , Light-Z(光-Z) LN Size , LN Size(LN尺寸) Magenta , Magenta(品红) Mapping , Mapping(制图) Mask By , Mask By(遮罩) Masking , Masking(遮罩) Octaves , Octaves(倍频程) Opacity , Opacity(不透明度) Outline , Outline(轮廓) Pattern , Pattern(模式) Point 1 , Point 1(点1) Point 2 , Point 2(点2) Preview , Preview(预习) Quality , Quality(质量) Recover , Recover(恢复) Repeats , Repeats(重复) Sat Top , Sat Top(最高饱和度) Scale 1 , Scale 1(尺寸1) Scale 2 , Scale 2(尺寸2) Sectors , Sectors(扇形数量) Shading , Shading(阴影) Shadows , Shadows(阴影) Sharpen , Sharpen(锐化) Shivers , Shivers(颤抖) Sigma 1 , Sigma 1(适马1) Sigma 2 , Sigma 2(适马2) Spacing , Spacing(间距) Strands , Strands(股线) Untwist , Untwist(解开) Wave(s) , Wave(s)(波浪) Wavelet , Wavelet(小波) X-Angle , X-Angle(X-角度) X-Light , X-Light(X-光) X-Ratio , X-Ratio(X-比率) X-Scale , X-Scale(X-缩放) X-Shift , X-Shift(X-移动) X-Tiles , X-Tiles(X-块数) Y-Angle , Y-Angle(Y-角度) Y-Light , Y-Light(Y-光) Y-Ratio , Y-Ratio(Y-比率) Y-Scale , Y-Scale(Y-缩放) Y-Shift , Y-Shift(Y-位移) Y-Tiles , Y-Tiles(Y-块数) Z-Angle , Z-Angle(Z-角度) Z-Light , Z-Light(Z-光) Z-Range , Z-Range(Z-范围) Z-Scale , Z-Scale(Z-尺寸) Zoom In , Zoom In(放大) Action , Action(动作) Amount , Amount(量) Aspect , Aspect(宽高比) Blacks , Blacks(黑色) Blob 9 , Blob 9(斑点9) Bottom , Bottom(底部) Bright , Bright(亮度) Center , Center(中心) Centre , Centre(中心) Chroma , Chroma(色度) Coarse , Coarse(粗糙) Colors , Colors(颜色) Cycles , Cycles(周期数) Darken , Darken(变暗) Deform , Deform(变形) Detail , Detail(详情) Dilate , Dilate(扩张) Factor , Factor(系数) Fading , Fading(衰减) Fine 2 , Fine 2(好2) Focale , Focale(焦点) Frames , Frames(帧数) Global , Global(全局) Height , Height(高度) Interp , Interp(插值) Invert , Invert(反转) Kernel , Kernel(核心) Length , Length(长度) Levels , Levels(等级) Little , Little(低饱和度) Lookup , Lookup(查找) Medium , Medium(中等) Method , Method(方法) Metric , Metric(公制) Mirror , Mirror(镜像) Modulo , Modulo(模数) Negate , Negate(否定) Number , Number(数) Origin , Origin(起源) Output , Output(输出) Period , Period(期) Petals , Petals(花瓣数) Points , Points(点数) Preset , Preset(预设值) Radius , Radius(半径) Reject , Reject(拒绝) Relief , Relief(浮雕) Repeat , Repeat(重复) Rotate , Rotate(旋转) Scales , Scales(缩放) Shadow , Shadow(阴影) Shapes , Shapes(形状) Size-1 , Size-1(尺寸-1) Size-2 , Size-2(尺寸-2) Size-3 , Size-3(尺寸-3) Smooth , Smooth(光滑) Soften , Soften(软化) Spread , Spread(扩散) Target , Target(目标) Trunks , Trunks(皮箱) Values , Values(价值观) Whites , Whites(白人) X-Size , X-Size(X-尺寸) Y-Size , Y-Size(Y-尺寸) Yellow , Yellow(黄色) Z-Size , Z-Size(Z-尺寸) 3 Mix , 3 Mix(3混合) Angle , Angle(角度) Black , Black(黑色) Blend , Blend(混合) Boost , Boost(促进) Clean , Clean(清理) Color , Color(颜色) Denim , Denim(牛仔布) Depth , Depth(深度) Forme , Forme(为了我) Gamma , Gamma(伽玛) Grain , Grain(颗粒) Green , Green(绿色) Input , Input(输入项) Iters , Iters(迭代) Large , Large(大) Layer , Layer(层) Level , Level(等级) Light , Light(光) Lines , Lines(线性[Lines]) Max-T , Max-T(最大-T) Metal , Metal(金属) Min-T , Min-T(最小-T) Mixer , Mixer(混合器) MIxer , MIxer(混合器) Order , Order(排序方式 ) Paint , Paint(涂料) Patch , Patch(补丁) Phase , Phase(相) Power , Power(功率) Quick , Quick(快) Range , Range(范围) Ratio , Ratio(宽高比) Remix , Remix(混合) Rendu , Rendu(渲染) Right , Right(直接) Scale , Scale(尺寸) Shade , Shade(阴影) Shape , Shape(形状) Shift , Shift(转移) Sigma , Sigma(西格玛) Space , Space(空间) Speed , Speed(速度) Steps , Steps(步数) Style , Style(样式) Tiles , Tiles(块数) Value , Value(明度) White , White(白色) Width , Width(宽度) X-Max , X-Max(X-最大) X-Min , X-Min(X-最小) Area , Area(区域) Axis , Axis(轴) Bias , Bias(偏压) Blue , Blue(蓝色) Blur , Blur(模糊) Code , Code(码) Crop , Crop(裁剪) Cyan , Cyan(青色) Fast , Fast(快速) Fine , Fine(精细) Gain , Gain(增加) Glow , Glow(辉光) Keep , Keep(保持) Left , Left(剩下) Line , Line(线) Luma , Luma(亮度) Mask , Mask(蒙版) Mode , Mode(模式) Most , Most(最高饱和度) Much , Much(高饱和度) None , None(无) Seed , Seed(种子) Size , Size(尺寸) Some , Some(中饱和度) Span , Span(跨度) Step , Step(步) Text , Text(文本) Tilt , Tilt(倾斜) Time , Time(时间) Toes , Toes(脚趾) Type , Type(类型) B&W , B&W(黑白) Cut , Cut(切割) Exp , Exp(经验值) FOV , FOV(视场) Hue , Hue(色相) Map , Map(地图) Max , Max(最大) Mid , Mid(中) Min , Min(最小) Rcx , Rcx(接收) Red , Red(红色) On , On(上) Up , Up(向上) Zero , Zero(零) YIQ [luma] , YIQ [luma](YIQ [亮度]) YIQ [Luma] , YIQ [Luma](YIQ [亮度]) YIQ [chromas] , YIQ [chromas](YIQ [色度]) YIQ [Chromas] , YIQ [Chromas](YIQ [色度]) YCbCr [red Chrominance] , YCbCr [red Chrominance](YCbCr [红色色度]) YCbCr [Red Chrominance] , YCbCr [Red Chrominance](YCbCr [红色色度]) YCbCr [luminance] , YCbCr [luminance](YCbCr [亮度]) YCbCr [Luminance] , YCbCr [Luminance](YCbCr [亮度]) YCbCr [green Chrominance] , YCbCr [green Chrominance](YCbCr [绿色色度]) YCbCr [Green Chrominance] , YCbCr [Green Chrominance](YCbCr [绿色色度]) YCbCr [blue-Red Chrominances] , YCbCr [blue-Red Chrominances](YCbCr [蓝-红 色度]) YCbCr [Blue-Red Chrominances] , YCbCr [Blue-Red Chrominances](YCbCr [蓝-红 色度]) YCbCr [blue Chrominance] , YCbCr [blue Chrominance](YCbCr [蓝色色度]) YCbCr [Blue Chrominance] , YCbCr [Blue Chrominance](YCbCr [蓝色色度]) YCbCr (Mixed) , YCbCr (Mixed)(YCbCr (混合)) YCbCr (Distinct) , YCbCr (Distinct)(YCbCr (明显)) Y-Axis Then X-Axis , Y-Axis Then X-Axis(Y轴然后X轴) Y-Axis , Y-Axis(Y轴) XY-Axis , XY-Axis(XY轴) Xy-Axes , Xy-Axes(XY轴) XY-Axes , XY-Axes(XY轴) Xor , Xor(异或) X-Axis Then Y-Axis , X-Axis Then Y-Axis(X轴然后Y轴) X-Axis , X-Axis(X轴) Wrap , Wrap(包裹) Wireframe , Wireframe(线框) Whiter Whites , Whiter Whites(较白的白人) Whitening , Whitening(变白) White Walls , White Walls(白墙) White to Black , White to Black(白到黑) White on Transparent Black , White on Transparent Black(透明白底·黑字) White on Transparent , White on Transparent(透明底白线) White on Black , White on Black(黑底白线) White Dices , White Dices(白色骰子) Weird , Weird(异形) Warm Vintage , Warm Vintage(温暖的年份) Vividlight , Vividlight(亮光) Vivid Screen , Vivid Screen(亮色滤色) Vivid Light , Vivid Light(亮光) Vivid Edges* , Vivid Edges*(亮色边缘*) Vivid Edges , Vivid Edges(亮色边缘) Virtual Landscape , Virtual Landscape(虚拟景观) Very High (Even Slower) , Very High (Even Slower)(很高(很慢)) Very High , Very High(很高) Vertical Stripes , Vertical Stripes(垂直条纹) Vertical Array , Vertical Array(垂直阵列) Vertical , Vertical(垂直) Velvetia , Velvetia(天鹅绒) Van Gogh: Wheat Field with Crows , Van Gogh: Wheat Field with Crows(梵高:乌鸦的麦田) Van Gogh: The Starry Night , Van Gogh: The Starry Night(梵高:星夜) Van Gogh: Irises , Van Gogh: Irises(梵高:鸢尾花) Van Gogh: Almond Blossom , Van Gogh: Almond Blossom(梵高:杏仁花) User-Defined (Bottom Layer) , User-Defined (Bottom Layer)(用户自定义(底层)) Uppercase Letters , Uppercase Letters(大写字母) Upper Layer Is the Top Layer for All Blends , Upper Layer Is the Top Layer for All Blends(上层是所有混合的顶层) Up-Right , Up-Right(右上) Up-Left , Up-Left(左上) Unsharp Mask , Unsharp Mask(锐化蒙版) Unknown , Unknown(未知) Uniform , Uniform(均匀) Underwater , Underwater(水下的) Unaligned Images , Unaligned Images(未对齐的图像) Two-By-Two , Two-By-Two(二乘二) Two Threads , Two Threads(两线程) Two Layers , Two Layers(两层) Turbulence 2 , Turbulence 2(湍流2) Tritanopia , Tritanopia(黄蓝色盲) Tritanomaly , Tritanomaly(蓝黄色弱) Trig-6 , Trig-6(三角6) Trig-4 , Trig-4(三角4) Triangular Vb , Triangular Vb(三角形 Vb) Triangular Va , Triangular Va(三角形 Va) Triangular Hb , Triangular Hb(三角形 Hb) Triangular Ha , Triangular Ha(三角形 Ha) Triangles (Outline) , Triangles (Outline)(三角形(轮廓)) Triangles , Triangles(三角形) Triangle , Triangle(三角形) Transparent Skin , Transparent Skin(透明皮肤) Transparent on White , Transparent on White(白底透明线) Transparent on Black , Transparent on Black(黑底透明线) Transparent Color , Transparent Color(透明色) Transparent Black & White , Transparent Black & White(透明黑白) Transparent , Transparent(透明) Transition Map , Transition Map(过渡图) Tout , Tout(out) Total Variation , Total Variation(总变化) Torus , Torus(圆环) Top Right , Top Right(右上) Top Left , Top Left(左上) Top Layer , Top Layer(上层) Top , Top(顶部) Tone Mapping Soft , Tone Mapping Soft(色调映射-软) Tone Mapping Fast , Tone Mapping Fast(色调映射-快速) To Nadir / Zenith , To Nadir / Zenith(转为 底/顶 视图) To Equirectangular , To Equirectangular(转为等分矩形视图) Tiny , Tiny(极小) Timed Image , Timed Image(定时图像) Tikhonov , Tikhonov(季霍诺夫) Tic-Tac-Toe , Tic-Tac-Toe(井字游戏) Three Layers , Three Layers(三层) Thinning (Slow) , Thinning (Slow)(细化(慢)) Thelypteridaceae , Thelypteridaceae(伞形科) The Game of Life , The Game of Life(人生游戏) Ten Layers , Ten Layers(十层) Tangent , Tangent(切线) Swap Radius / Angle , Swap Radius / Angle(交换半径/角度) Swap , Swap(交换) Subtractive , Subtractive(减法) Subtract , Subtract(减去) Studio , Studio(工作室) Strong , Strong(强力) Stretch , Stretch(伸展) Straight , Straight(直线) Stars (Outline) , Stars (Outline)(星星(轮廓)) Stardust , Stardust(星尘) Star , Star(星型) Standard Deviation , Standard Deviation(标准偏差) Standard [No Scan] , Standard [No Scan](标准[不扫描]) Standard (256) , Standard (256)(标准(256)) Standard , Standard(标准) Squares (Outline) , Squares (Outline)(正方形(轮廓)) Squares , Squares(方格) Squared-Euclidean , Squared-Euclidean(平方欧几里得) Square 2 , Square 2(正方形 2-◇) Square 1 , Square 1(正方形 1-□) Square (Inv.) , Square (Inv.)(正方形(反转)) Square , Square(正方形) Split Brightness / Colors , Split Brightness / Colors(分开亮度/颜色) Splines , Splines(曲线) Spline Editor , Spline Editor(样条编辑器) Spline B6 , Spline B6(样条插值B6) Spline B5 , Spline B5(样条插值B5) Spline B4 , Spline B4(样条插值B4) Spline B3 , Spline B3(样条插值B3) Spline B2 , Spline B2(样条插值B2) Spline B1 , Spline B1(样条插值B1) Solarize , Solarize(曝光过度) Softdodge , Softdodge(柔和减淡) Soft Light , Soft Light(柔光) Soft Glow , Soft Glow(柔光) Soft Dodge , Soft Dodge(柔和减淡) Soft Burn , Soft Burn(柔和加深) Soft Light , Soft Light(柔光) Soft , Soft(柔软的) Smooth Only , Smooth Only(仅平滑) Smooth Light , Smooth Light(柔光) Smooth Dark , Smooth Dark(柔暗) Smart , Smart(智能) Small (Faster) , Small (Faster)(小 (较快)) Small , Small(小) Slow Recovery , Slow Recovery(缓慢恢复) Slow (Accurate) , Slow (Accurate)(缓慢(准确)) Skin Tone Mask , Skin Tone Mask(肤色蒙版) Skin Tone Colors , Skin Tone Colors(肤色颜色) Skin Mask , Skin Mask(皮肤遮罩) Sixteen Threads , Sixteen Threads(十六线程) Six Layers , Six Layers(六层) Sinusoidal , Sinusoidal(正弦曲线) Single Opaque Shapes Over Transp. BG , Single Opaque Shapes Over Transp. BG(透明背景上的单一不透明形状) Single Layer , Single Layer(单层) Single Custom Depth Map , Single Custom Depth Map(单个自定义深度图) Single (Merged) , Single (Merged)(单层(合并)) Sine+ , Sine+(正弦+) Sine , Sine(正弦波) Silver , Silver(银) Sierpinksi Design , Sierpinksi Design(谢尔宾斯基三角形) Side by Side , Side by Side(并排) Shrink , Shrink(收缩) Sharpening Layer , Sharpening Layer(锐化层) Sharpened Areas Only , Sharpened Areas Only(仅尖锐区域) Shapeaverage , Shapeaverage(形状平均) Shape Min0 , Shape Min0(形状最小值0) Shape Min , Shape Min(形状最小值) Shape Median0 , Shape Median0(形状中间带0) Shape Median , Shape Median(形状中间带) Shape Max0 , Shape Max0(形状最大值0) Shape Max , Shape Max(形状最大值) Shape Average0 , Shape Average0(形状平均值0) Shape Average , Shape Average(形状平均值) Shape Area Min0 , Shape Area Min0(形状区域最小0) Shape Area Min , Shape Area Min(形状区域最小) Shape Area Max0 , Shape Area Max0(形状区域最大0) Shape Area Max , Shape Area Max(形状区域最大) Shadebobs , Shadebobs(影子鲍勃) Seventies Magazine , Seventies Magazine(七十年代杂志) Seven Layers , Seven Layers(七层) Set Aspect Only , Set Aspect Only(仅设置长宽比) Sequence X8 , Sequence X8(顺序X8) Sequence X6 , Sequence X6(顺序X6) Sequence X4 , Sequence X4(顺序X4) Self Image , Self Image(本图) Self , Self(自身) Selective Gaussian , Selective Gaussian(选择性高斯平滑) Selected Mask , Selected Mask(所选遮罩) Selected Frame , Selected Frame(选定框架) Selected Colors , Selected Colors(选定的颜色) Secant , Secant(割线法) Screen , Screen(滤色) Scr , Scr(滤色) Scaled , Scaled(缩放比例) Scale RGB , Scale RGB(缩放RGB) Scale CMYK , Scale CMYK(缩放CMYK) Scalar , Scalar(标量) Save CLUT as .Cube or .Png File , Save CLUT as .Cube or .Png File(将CLUT另存为.Cube或.Png文件) Sans , Sans(无) Same Axis , Same Axis(同轴) Salt and Pepper , Salt and Pepper(椒盐) RYB [Yellow] , RYB [Yellow](RYB [黄色]) RYB [Red] , RYB [Red](RYB [红色]) RYB [Blue] , RYB [Blue](RYB [蓝色]) RYB [All] , RYB [All](RYB [全部]) Runge-Kutta , Runge-Kutta(龙格-库塔) Rubik , Rubik(魔方) Row by Row , Row by Row(逐行) Round , Round(圆形) Rotate 90 Deg. , Rotate 90 Deg.(旋转90度) Rotate 270 Deg. , Rotate 270 Deg.(旋转270度) Rotate 180 Deg. , Rotate 180 Deg.(旋转180度) Robert Cross 2 , Robert Cross 2(罗伯特·克罗斯2) Robert Cross 1 , Robert Cross 1(罗伯特·克罗斯1) Rigid , Rigid(不变形) Right Stream Only , Right Stream Only(仅右流) Right Foreground , Right Foreground(正确的前景) Right Eye View , Right Eye View(右眼视图) Right Diagonal Foreground , Right Diagonal Foreground(右对角前景) Right Diagonal Foreground , Right Diagonal Foreground(右对角前景) Rice , Rice(稻谷噪点) RGBA Image (Updatable / 1 Layer) , RGBA Image (Updatable / 1 Layer)(RGBA图像(可更新/ 1层)) RGBA Image (Full-Transparency / 1 Layer) , RGBA Image (Full-Transparency / 1 Layer)(RGBA图像(全透明/ 1层)) RGBA Foreground + Background (2 Layers) , RGBA Foreground + Background (2 Layers)(RGBA前景+背景(2层)) RGBA [alpha] , RGBA [alpha](RGBA [透明]) RGBA [Alpha] , RGBA [Alpha](RGBA [透明]) RGBA [all] , RGBA [all](RGBA [全部]) RGBA [All] , RGBA [All](RGBA [全部]) RGB[A] , RGB[A](RGB [A]) RGB Quantization , RGB Quantization(RGB量化) RGB Image + Binary Mask (2 Layers) , RGB Image + Binary Mask (2 Layers)(RGB图像+二进制蒙版(2层)) RGB [red] , RGB [red](RGB [红色]) RGB [Red] , RGB [Red](RGB [红色]) RGB [green] , RGB [green](RGB [绿色]) RGB [Green] , RGB [Green](RGB [绿色]) RGB [blue] , RGB [blue](RGB [蓝色]) RGB [Blue] , RGB [Blue](RGB [蓝色]) RGB [all] , RGB [all](RGB [全部]) RGB [All] , RGB [All](RGB [全部]) Reverse Pow , Reverse Pow(逆幂) Reverse Mod , Reverse Mod(逆模) Reverse Bytes , Reverse Bytes(反向字节) Reverse Bits , Reverse Bits(反转位) Retouched Image Final , Retouched Image Final(修饰图像决赛) Retouched Image Basic , Retouched Image Basic(修饰的图像基本) Retouched Image , Retouched Image(修饰图像) Retouched Areas Only , Retouched Areas Only(仅修饰区域) Retouched and Sharpened Areas , Retouched and Sharpened Areas(修饰和锐化的区域) Retouch Layer , Retouch Layer(修饰图层) Result Image , Result Image(最终图像) Replaced Color , Replaced Color(更换颜色) Replace With White , Replace With White(换成白色) Replace Source by Target , Replace Source by Target(按目标替换源) Replace Layer with CLUT , Replace Layer with CLUT(用CLUT替换图层) Replace (Sharpest) , Replace (Sharpest)(替换(清晰)) Replace , Replace(替换) Repeat [Memory Consuming!] , Repeat [Memory Consuming!](重复[消耗内存!]) Rendu En Haut , Rendu En Haut(渲染到顶部) Rendu En Bas , Rendu En Bas(渲染到底部) Rendu a Gauche , Rendu a Gauche(渲染到左侧) Rendu a Droite , Rendu a Droite(渲染到右侧) Render on White Areas , Render on White Areas(在白色区域上渲染) Render on Dark Areas , Render on Dark Areas(在黑暗区域渲染) Rejected Mask , Rejected Mask(拒绝遮罩) Rejected Colors , Rejected Colors(拒绝的颜色) Reflect , Reflect(反射) Red-Green , Red-Green(红绿色) Red Chrominance , Red Chrominance(红色色度) Rectangle , Rectangle(长方形) Reconstruct From Previous Frames , Reconstruct From Previous Frames(从以前的帧重建) Recompose , Recompose(重新组合) Rayons Couleurs ABCDEFG , Rayons Couleurs ABCDEFG(彩色光线 ABCDEFG) Rayons Couleurs ABCDEF , Rayons Couleurs ABCDEF(彩色光线 ABCDEF) Rayons Couleurs ABCDE , Rayons Couleurs ABCDE(彩色光线 ABCDE) Rayons Couleurs ABCD , Rayons Couleurs ABCD(彩色光线 ABCD) Rayons Couleurs ABC , Rayons Couleurs ABC(彩色光线 ABC) Rayons Couleurs AB , Rayons Couleurs AB(彩色光线 AB) Randomized , Randomized(随机化) Random [non-Transparent] , Random [non-Transparent](随机[非透明]) Radial , Radial(径向的) Quadratic , Quadratic(二次方) Pyramid , Pyramid(棱锥) Protanopia , Protanopia(红色盲) Protanomaly , Protanomaly(红色弱) Procedural , Procedural(程序性) Probability Map , Probability Map(概率图) Pre-Defined , Pre-Defined(预定义) Pow , Pow(超过) Positive , Positive(正) Portrait , Portrait(肖像) Pollock: Summertime Number 9A , Pollock: Summertime Number 9A(波洛克:夏季编号9A) Pollock: Convergence , Pollock: Convergence(波洛克:收敛) Poisson , Poisson(泊松噪点) Plasma Effect , Plasma Effect(等离子效应) Plane , Plane(平面) Pixel Values , Pixel Values(像素值) Pinlight , Pinlight(针灯) Pin Light , Pin Light(点光) Picasso: The Reservoir - Horta De Ebro , Picasso: The Reservoir - Horta De Ebro(毕加索:水库-奥尔塔爱布罗) Picasso: Seated Woman , Picasso: Seated Woman(毕加索:坐着的女人) Picasso: Les Demoiselles D'Avignon , Picasso: Les Demoiselles D'Avignon(毕加索:亚维农的少女) Picabia: Udnie , Picabia: Udnie(皮卡比亚:乌德尼) Phong , Phong(冯氏着色) Perserve Luminance , Perserve Luminance(保持亮度) Periodic , Periodic(周期) Pentagon , Pentagon(五边形) Pea Soup , Pea Soup(豌豆汤) PCA Transfer , PCA Transfer(PCA转移) Paintstroke , Paintstroke(绘画描边) Pacman , Pacman(吃豆子) Overlay , Overlay(叠加) Outward , Outward(向外) Outside-In , Outside-In(由外向内) Outside , Outside(外) Outlined , Outlined(轮廓线) Outer , Outer(外) Orwo NP20-GDR , Orwo NP20-GDR(奥沃NP20-GDR) Orton Glow , Orton Glow(奥顿微光) Original - Opening , Original - Opening(原始-开放) Original - Erosion , Original - Erosion(原始-侵蚀) Original - (Opening + Closing)/2 , Original - (Opening + Closing)/2(原始-(开放/关闭)/2) Original , Original(原版) Or , Or(或) Optimized Lateral Inhibition , Optimized Lateral Inhibition(优化的侧向抑制) Opening , Opening(开放) Opaque Skin , Opaque Skin(不透明的皮肤) Opaque Regions on Top Layer , Opaque Regions on Top Layer(顶层不透明区域) Opaque Pixels , Opaque Pixels(不透明像素) One Thread , One Thread(单线程) One Layer per Single Region , One Layer per Single Region(每个区域一层) One Layer per Single Color , One Layer per Single Color(每种颜色一层) One Layer , One Layer(一层) Old Method - Slowest , Old Method - Slowest(旧方法-最慢) Off , Off(关) Octogon , Octogon(八角形) Octagonal , Octagonal(八角形) Octagon , Octagon(八边形) Nothing , Nothing(没有) Normalize Luma , Normalize Luma(标准化亮度) Normal Output , Normal Output(正常输出) Normal Map , Normal Map(法线贴图) Normal , Normal(正常) None- Skip , None- Skip(无-跳过) Non-Rigid , Non-Rigid(可变形) Non / No , Non / No(否) Noise , Noise(噪点) No-Skip , No-Skip(无-跳过) No Rescaling , No Rescaling(没有缩放) No Recovery , No Recovery(不恢复) No Masking , No Masking(没有蒙版) Nine Layers , Nine Layers(九层) Newton , Newton(牛顿法) New Curves [Interactive] , New Curves [Interactive](新曲线[交互式]) Neumann , Neumann(诺依曼) Neat Merge , Neat Merge(有序合并) Nearest Neighbor , Nearest Neighbor(相邻) Nearest , Nearest(最近) Name , Name(名称) Naif , Naif(天真) Munch: The Scream , Munch: The Scream(蒙克:尖叫) Multiply , Multiply(正片叠底(相乘)) Multiple Layers , Multiple Layers(多层) Multiple Colored Shapes Over Transp. BG , Multiple Colored Shapes Over Transp. BG(透明背景上的多个颜色形状) Mul , Mul(正片叠底(相乘)) Motion-Compensated , Motion-Compensated(运动补偿) Morphological Closing , Morphological Closing(形态闭合) Morphological - Fastest Sharpest Output , Morphological - Fastest Sharpest Output(形态-最快,最清晰的输出) Moody , Moody(抑郁) Mono-Directional , Mono-Directional(单向) Monet: Wheatstacks - End of Summer , Monet: Wheatstacks - End of Summer(莫奈:小麦堆-夏末) Monet: Water-Lily Pond , Monet: Water-Lily Pond(莫奈:睡莲池) Monet: San Giorgio Maggiore at Dusk , Monet: San Giorgio Maggiore at Dusk(莫奈:黄昏的圣乔治·马焦雷) Mondrian: Gray Tree , Mondrian: Gray Tree(蒙德里安:灰色树) Mondrian: Evening; Red Tree , Mondrian: Evening; Red Tree(蒙德里安:晚上-红树) Mondrian: Composition in Red-Yellow-Blue , Mondrian: Composition in Red-Yellow-Blue(蒙德里安:红黄蓝组成) Modern Film , Modern Film(现代电影) Mod , Mod(模数或余数) Mirror-Y , Mirror-Y(镜像-Y) Mirror-XY , Mirror-XY(镜像-XY) Mirror-X , Mirror-X(镜像-X) Mirror Y , Mirror Y(镜像反转Y) Mirror X , Mirror X(镜像反转X) Minimum Dimension , Minimum Dimension(最小尺寸) Minimum , Minimum(最低要求) Minimal Path , Minimal Path(最小路径) Minesweeper , Minesweeper(扫雷车) Mid-Tones , Mid-Tones(中间调) Mid Noise , Mid Noise(中等噪点) Micro/macro Details Adjusted , Micro/macro Details Adjusted(微观/宏观细节调整) Merge Brightness / Colors , Merge Brightness / Colors(合并亮度/颜色) Medium Scale (Smoothed) , Medium Scale (Smoothed)(平均比例(平滑)) Medium Scale (Original) , Medium Scale (Original)(平均比例(原始)) Medium Frequency Layer , Medium Frequency Layer(中频层) Median (beware: Memory-Consuming!) , Median (beware: Memory-Consuming!)(中间值(请注意:内存消耗!)) Median , Median(中位数) Mean Curvature , Mean Curvature(平均曲率) Mean Color , Mean Color(平均颜色) Maximum Value , Maximum Value(最大值) Maximum Dimension , Maximum Dimension(最大尺寸) Maximum , Maximum(最大值) Math Symbols , Math Symbols(数学符号) Masked Image , Masked Image(应用蒙版后的图像) Mask as Bottom Layer , Mask as Bottom Layer(蒙版为底层) Mask + Background , Mask + Background(蒙版+背景) Masculine , Masculine(男性) Manual Controls , Manual Controls(手动控制) Manual , Manual(手动) Manhattan , Manhattan(曼哈顿) Mandelbrot Explorer , Mandelbrot Explorer(Mandelbrot资源管理器) Mandelbrot , Mandelbrot(曼德布罗特) Magenta-Yellow , Magenta-Yellow(洋红色-黄色) Luminosity from Color , Luminosity from Color(颜色亮度) Luminance Only , Luminance Only(仅亮度) Luminance , Luminance(光度/亮度) Luma Noise , Luma Noise(亮度噪点) Lowres CLUT , Lowres CLUT(低分辨率CLUT) Lowercase Letters , Lowercase Letters(小写字母) Lower Layer Is the Bottom Layer for All Blends , Lower Layer Is the Bottom Layer for All Blends(下层是所有混合的底层) Low Key , Low Key(低调) Low Frequency Layer , Low Frequency Layer(低频层) Low , Low(低) Lock Source , Lock Source(锁源) Local Normalisation , Local Normalisation(局部标准化) Lissajous Spiral , Lissajous Spiral(利萨如螺旋) Linf-Norm , Linf-Norm(Linf-范数) Lines (256) , Lines (256)(线性[Lines](256)) Lineart + Extrapolated Colors , Lineart + Extrapolated Colors(线稿+外推颜色) Lineart + Colors , Lineart + Colors(线稿+颜色) Lineart + Color Spots + Extrapolated Colors , Lineart + Color Spots + Extrapolated Colors(线稿+色点+外推颜色) Lineart + Color Spots , Lineart + Color Spots(线稿+色点) Lineart , Lineart(线条艺术) Linearlight , Linearlight(线性光) Linearburn , Linearburn(线性燃烧) Linear RGB [red] , Linear RGB [red](线性RGB [红色]) Linear RGB [Red] , Linear RGB [Red](线性RGB [红色]) Linear RGB [green] , Linear RGB [green](线性RGB [绿色]) Linear RGB [Green] , Linear RGB [Green](线性RGB [绿色]) Linear RGB [blue] , Linear RGB [blue](线性RGB [蓝色]) Linear RGB [Blue] , Linear RGB [Blue](线性RGB [蓝色]) Linear RGB [all] , Linear RGB [all](线性RGB [全部]) Linear RGB [All] , Linear RGB [All](线性RGB [全部]) Linear RGB , Linear RGB(线性RGB) Linear Light , Linear Light(线性光) Linear Burn , Linear Burn(线性加深) Linear , Linear(线性) Lighty Smooth , Lighty Smooth(轻柔光滑) Lighter , Lighter(较亮) Lighten , Lighten(变亮) Light Motive , Light Motive(亮部) Light Effect , Light Effect(灯光效果) Left Stream Only , Left Stream Only(仅左流) Left Foreground , Left Foreground(左前景) Left Diagonal Foreground , Left Diagonal Foreground(左对角前景) Left and Right Image Streams , Left and Right Image Streams(左右图像流) Left and Right Foreground , Left and Right Foreground(左右前景) Left and Right Background , Left and Right Background(左右背景) Left Foreground , Left Foreground(左前景) Lch [h-Chrominance] , Lch [h-Chrominance](Lch [h-色度]) Lch [ch-Chrominances] , Lch [ch-Chrominances](Lch [ch-色度]) Lch [c-Chrominance] , Lch [c-Chrominance](Lch [c-色度]) Layer Processing , Layer Processing(图层处理) Last Frame , Last Frame(最后一帧) Last , Last(最后) Large Noise , Large Noise(大噪点) Lanczos , Lanczos(兰佐斯) LAB8 , LAB8(Lab8) LAB-Lightness , LAB-Lightness(LAB亮度) Lab [lightness] , Lab [lightness](Lab[亮度]) Lab [Lightness] , Lab [Lightness](Lab[亮度]) Lab [b-Chrominance] , Lab [b-Chrominance](Lab[b-色度]) Lab [ab-Chrominances] , Lab [ab-Chrominances](Lab[ab-色度]) Lab [a-Chrominance] , Lab [a-Chrominance](Lab [a-色度]) Lab (Mixed) , Lab (Mixed)(Lab (混合)) Lab (Distinct) , Lab (Distinct)(Lab (明显)) L2-Norm , L2-Norm(L2-范数) L1-Norm , L1-Norm(L1-范数) Kodak TRI-X 1600 , Kodak TRI-X 1600(柯达TRI-X 1600) Kodak TMAX 400 , Kodak TMAX 400(柯达TMAX 400) Kodak TMAX 3200 , Kodak TMAX 3200(柯达TMAX 3200) Kodak 1-8 , Kodak 1-8(柯达1-8) Klimt: The Kiss , Klimt: The Kiss(克里姆特:吻) Klee: Red Waistcoat , Klee: Red Waistcoat(克利:红色背心) Klee: Polyphony 2 , Klee: Polyphony 2(克利:复调2) Klee: Oriental Pleasure Garden Anagoria , Klee: Oriental Pleasure Garden Anagoria(克利:东方游乐园安那哥里亚) Klee: In the Style of Kairouan , Klee: In the Style of Kairouan(克利:凯鲁万风格) Klee: Death and Fire , Klee: Death and Fire(克利:死亡与火灾) Keftales , Keftales(凯夫塔莱斯) Keep Aspect Ratio , Keep Aspect Ratio(保持长宽比例) Kandinsky: Yellow-Red-Blue , Kandinsky: Yellow-Red-Blue(康定斯基:黄色-红色-蓝色) Kandinsky: Squares with Concentric Circles , Kandinsky: Squares with Concentric Circles(康定斯基:具有同心圆的正方形) Julia , Julia(朱莉亚) Jet (256) , Jet (256)(热成像[jet](256)) Jet , Jet(热成像[jet]) Jawbreaker , Jawbreaker(颚破) Isotropic , Isotropic(各向同性) Inward , Inward(向内) Inverse Radius , Inverse Radius(反向半径) Inverse Depth Map , Inverse Depth Map(反深度图) Interpolate , Interpolate(插值) Interlace Vertical , Interlace Vertical(垂直隔行) Interlace Horizontal , Interlace Horizontal(水平隔行) Inside-Out , Inside-Out(由内向外) Inside , Inside(内) Insert New CLUT Layer , Insert New CLUT Layer(插入新的CLUT层) Inner , Inner(内) Increasing , Increasing(升序) Inch , Inch(英寸) Impulses 9x9 , Impulses 9x9(冲量9x9) Impulses 7x7 , Impulses 7x7(冲量7x7) Impulses 5x5 , Impulses 5x5(冲量5x5) Image + Colors (Multi-Layers) , Image + Colors (Multi-Layers)(图像+颜色(多层)) Image + Colors (2 Layers) , Image + Colors (2 Layers)(图像+颜色(2层)) Image + Background , Image + Background(图片+背景) Image , Image(图片) Illumination , Illumination(照度图) Ignore , Ignore(忽视) Identity , Identity(身分识别) Hybrid Median - Medium Speed Softest Output , Hybrid Median - Medium Speed Softest Output(混合中值-中速输出) Human 2 , Human 2(人类2) Human 1 , Human 1(人1) Human 2 , Human 2(人类2) HSV [value] , HSV [value](HSV [明度]) HSV [Value] , HSV [Value](HSV [明度]) HSV [saturation] , HSV [saturation](HSV [饱和度]) HSV [Saturation] , HSV [Saturation](HSV [饱和度]) HSV [hue] , HSV [hue](HSV [色相]) HSV [Hue] , HSV [Hue](HSV [色相]) HSL [lightness] , HSL [lightness](HSL [亮度]) HSL [Lightness] , HSL [Lightness](HSL [亮度]) HSI [intensity] , HSI [intensity](HSI[强度]) HSI [Intensity] , HSI [Intensity](HSI[强度]) Householder , Householder(豪斯霍尔德法) Hough Transform , Hough Transform(霍夫变换) Hot (256) , Hot (256)(暖[Hot](256)) Hot , Hot(暖[Hot]) Horizontal Stripes , Horizontal Stripes(水平条纹) Horizontal Array , Horizontal Array(水平阵列) Horizontal , Horizontal(水平) Hokusai: The Great Wave , Hokusai: The Great Wave(葛饰北斋:大浪) Histogram Transfer , Histogram Transfer(直方图转移) Histogram , Histogram(直方图) Highres CLUT , Highres CLUT(高分辨率CLUT) High Speed , High Speed(高速) High Quality , High Quality(高质量) High Key , High Key(高调) High Frequency Layer , High Frequency Layer(高频层) High (Slower) , High (Slower)(高(慢)) High , High(高) Hexagonal , Hexagonal(六角形) Hexagon , Hexagon(六边形) Hearts (Outline) , Hearts (Outline)(心形(轮廓)) Hardmix , Hardmix(硬混) Hardlight , Hardlight(强光) Hard Mix , Hard Mix(实色混合) Hard Light , Hard Light(强光) Hard Dark , Hard Dark(强暗) Hard , Hard(硬) Hanoi Tower , Hanoi Tower(河内塔) Half Side by Side , Half Side by Side(左右各半) Half Bottom/top , Half Bottom/top(下半部/上半部) Gyroid , Gyroid(螺旋) Guide Recovery , Guide Recovery(引导恢复) Gritty , Gritty(真实) Grid , Grid(网格) Grey , Grey(灰色) Green-Red , Green-Red(绿红) Green-Blue , Green-Blue(绿-蓝) Grayscale , Grayscale(灰度) Gray , Gray(灰色) Graphix Colors , Graphix Colors(Graphix颜色) Graphic Colours , Graphic Colours(图像颜色) Grainmerge , Grainmerge(颗粒合并) Grainextract , Grainextract(颗粒) Grainext , Grainext(颗粒抽取) Grain Only , Grain Only(仅颗粒) Grain Merge , Grain Merge(颗粒合并) Grain Extract , Grain Extract(颗粒抽取) Gradient Values , Gradient Values(渐变值) Gradient , Gradient(梯度) Gouraud , Gouraud(高氏着色) Gold , Gold(金) Global Mapping , Global Mapping(全局映射) Glamour Glow , Glamour Glow(魅力发光) Generate Random-Colors Layer , Generate Random-Colors Layer(生成随机颜色层) Gaussian , Gaussian(高斯) Gamma Balance , Gamma Balance(伽玛平衡) Full Side by Uncompressed , Full Side by Uncompressed(全侧未压缩) Full Side by Side Keep Width , Full Side by Side Keep Width(完整并排保持宽度) Full Side by Side Keep Uncompressed , Full Side by Side Keep Uncompressed(完整并排不压缩) Full Layer Stack -Slow!- , Full Layer Stack -Slow!-(全层堆栈-慢!-) Full HD Frame Packing , Full HD Frame Packing(全高清帧包装) Full Colors , Full Colors(全彩) Full Bottom/top , Full Bottom/top(完整 上/下) Full (Allows Multi-Layers) , Full (Allows Multi-Layers)(完整(允许多层)) Full , Full(□完整) From Reference Color , From Reference Color(从参考色) From Input , From Input(从输入) Freeze , Freeze(冻结) Fractured Clouds , Fractured Clouds(碎云) Fractal Whirl , Fractal Whirl(分形漩涡) Fractal Noise , Fractal Noise(分形噪点) Fourier Filtering , Fourier Filtering(傅立叶滤波) Four Threads , Four Threads(四线程) Four Layers , Four Layers(四层) Forward Vertical , Forward Vertical(←▶垂直分割原图在上) Forward Horizontal , Forward Horizontal(↑▼水平分割原图在左) Forward Horizontal , Forward Horizontal(↑▼水平分割原图在上) Forward , Forward(上面) Flat-Shaded , Flat-Shaded(平面着色) Flat , Flat(平面) Flag (256) , Flag (256)(旗帜[Flag](256)) Flag , Flag(旗帜[Flag]) Five Layers , Five Layers(五层) Fish-Eye Effect , Fish-Eye Effect(鱼眼效应) First Frame , First Frame(第一帧) First , First(第一) Fireworks , Fireworks(烟花) Fire Effect , Fire Effect(射击效果) Finest (slower) , Finest (slower)(最精细(较慢)) Fine Noise , Fine Noise(细噪点) Final Image , Final Image(最终影像) Filled , Filled(填充) Fast Recovery , Fast Recovery(快速恢复) Fast Blend , Fast Blend(快速混合) Fast (Approx.) , Fast (Approx.)(快速(大概)) Faded Print , Faded Print(褪色打印) Extrapolated Colors + Lineart , Extrapolated Colors + Lineart(外推颜色+线稿) Extrapolate Color Spots on Transparent Top Layer , Extrapolate Color Spots on Transparent Top Layer(推断透明顶层上的色斑) Extra Smooth , Extra Smooth(格外光滑) Exponential , Exponential(指数的) Expired 69 , Expired 69(已过期69) Expand , Expand(扩大) Exclusion , Exclusion(排除) Euclidean , Euclidean(欧几里得) Erosion , Erosion(侵蚀) Ellipsoid , Ellipsoid(椭球) Ellipse Painting , Ellipse Painting(椭圆画) Ellipse , Ellipse(椭圆形) Eight Threads , Eight Threads(八线程) Eight Layers , Eight Layers(八层) Edges-2 (beware: Memory-Consuming!) , Edges-2 (beware: Memory-Consuming!)(边缘-2(请注意:内存消耗!)) Edges-1 (beware: Memory-Consuming!) , Edges-1 (beware: Memory-Consuming!)(边缘-1(请注意:内存消耗!)) Edges-0.5 (beware: Memory-Consuming!) , Edges-0.5 (beware: Memory-Consuming!)(边缘-0.5(请注意:内存消耗!)) Edge-Oriented , Edge-Oriented(边缘-导向) Edge Mask , Edge Mask(边缘蒙版) Dusty , Dusty(灰暗) Duplicate Vertical , Duplicate Vertical(◀→垂直重复) Duplicate Top , Duplicate Top(▲↓顶部重复) Duplicate Right , Duplicate Right(←▶右侧重复) Duplicate Left , Duplicate Left(◀→左侧重复) Duplicate Horizontal , Duplicate Horizontal(▲↓水平重复) Duplicate Bottom , Duplicate Bottom(↑▼底部重复) Dream , Dream(梦幻) Dots , Dots(点) DoNothing , DoNothing(无) Don't Sort , Don't Sort(不要排序) Dodge , Dodge(减淡 (颜色减淡)) Divide , Divide(相除) Distance (Fast) , Distance (Fast)(稀疏(快)) Disabled , Disabled(不使用) Disable , Disable(禁用) Dirichlet , Dirichlet(狄利克雷) Direct , Direct(正向) Dilation - Original , Dilation - Original(扩张-原始) Digits , Digits(数字) Diffusion , Diffusion(扩散) Different Axis , Different Axis(不同轴) Difference , Difference(差值) Dif , Dif(差值/差异) Dices with Colored Sides , Dices with Colored Sides(彩色骰子黑点数) Dices with Colored Numbers , Dices with Colored Numbers(彩色点数黑骰子) Diamonds (Outline) , Diamonds (Outline)(钻石(轮廓)) Diamonds , Diamonds(菱形) Diamond (Inv.) , Diamond (Inv.)(菱形(反转)) Diamond , Diamond(菱形) Deuteranopia , Deuteranopia(绿色盲) Deuteranomaly , Deuteranomaly(绿色弱) Depth Maps Only , Depth Maps Only(仅深度图) Depth Map Only , Depth Map Only(仅深度图) Depth Map , Depth Map(深度图) Delaunay: Windows Open Simultaneously , Delaunay: Windows Open Simultaneously(德洛内:窗口同时打开) Delaunay: Portrait De Metzinger , Delaunay: Portrait De Metzinger(德洛内:肖像梅钦格) Delaunay-Oriented , Delaunay-Oriented(Delaunay-导向) Decreasing , Decreasing( 降序) Decompose , Decompose(分解) Decagon , Decagon(十边形) Daylight Scene , Daylight Scene(日光场景) Darker , Darker(较暗) Dark Walls , Dark Walls(暗墙) Dark Screen , Dark Screen(深色滤色) Dark Pixels , Dark Pixels(暗像素) Dark Motive , Dark Motive(暗部) Dark Edges , Dark Edges(深色边缘) Dark Boost , Dark Boost(暗色加强) Dark Motive , Dark Motive(暗部) Cylinder , Cylinder(圆柱) Cut & Normalize , Cut & Normalize(剪切并标准化) Custom Transform , Custom Transform(自定义转换) Custom Style (Top Layer) , Custom Style (Top Layer)(自定义样式(上层)) Custom Style (Bottom Layer) , Custom Style (Bottom Layer)(自定义样式(下层)) Custom Layers , Custom Layers(自定义层) Custom Depth Maps Stream , Custom Depth Maps Stream(自定义深度图流) Custom Correction Map , Custom Correction Map(自定义校正图) Custom , Custom(自定义) Curves Previously Defined , Curves Previously Defined(先前定义的曲线) Curved , Curved(曲线) Cup , Cup(杯子) Cubic , Cubic(立方) Cube (256) , Cube (256)(立方体[Cube](256)) Cube , Cube(立方体[Cube]) Crosses 2 , Crosses 2(十字2-×) Crosses 1 , Crosses 1(圆形1-+) Crossed , Crossed( 交叉) Criterion , Criterion(标准) Couleurs B , Couleurs B(库勒B) Couleurs A , Couleurs A(库勒A) Cosinusoidal , Cosinusoidal(余弦曲线) Copper , Copper(铜) Cool (256) , Cool (256)(冷色[Cool](256)) Cool , Cool(冷色[Cool]) Contours + Flocon/Snowflake , Contours + Flocon/Snowflake(轮廓+雪花) Connect-Four , Connect-Four(四连) Cone , Cone(锥体) Composed Layers , Composed Layers(组成层) Comix Colors , Comix Colors(混色) Comic Style , Comic Style(漫画风格) Column by Column , Column by Column(逐列) Colour , Colour(颜色) Colors Only (1 Layer) , Colors Only (1 Layer)(仅颜色(1层)) Colors Only , Colors Only(仅颜色) Colorized Image (1 Layer) , Colorized Image (1 Layer)(彩色图像(1层)) Colored Regions , Colored Regions(着色区域) Colored on Transparent , Colored on Transparent(透明背景彩色字) Colored on Black , Colored on Black(黑底彩字) Colored Lineart , Colored Lineart(着色线稿) Colored Geometry , Colored Geometry(着色几何) Colorburn , Colorburn(颜色加深 (变暗)) Color Spots + Lineart , Color Spots + Lineart(色点+线稿) Color Spots + Extrapolated Colors + Lineart , Color Spots + Extrapolated Colors + Lineart(色点+外推颜色+线稿) Color on White , Color on White(白底彩字) Color Mask , Color Mask(颜色蒙版) Color Doping , Color Doping(彩色掺杂) Color Channel Smoothing , Color Channel Smoothing(色彩通道平滑) Color Burn , Color Burn(颜色加深) Coarsest (faster) , Coarsest (faster)(最粗糙(更快)) CMYK [yellow] , CMYK [yellow](CMYK [黄色]) CMYK [Yellow] , CMYK [Yellow](CMYK [黄色]) CMYK [magenta] , CMYK [magenta](CMYK [洋红色]) CMYK [Magenta] , CMYK [Magenta](CMYK [洋红色]) CMYK [cyan] , CMYK [cyan](CMYK [青色]) CMYK [Cyan] , CMYK [Cyan](CMYK [青色]) Closing - Original , Closing - Original(关闭-原始) Closing - Opening , Closing - Opening(关闭-开放) Closing , Closing(关闭) Clip RGB , Clip RGB(裁剪RGB) Clip CMYK , Clip CMYK(裁剪CMYK) Clip , Clip(裁剪) Circular , Circular(圆形) Circles 2 , Circles 2(圆形2-○) Circles 1 , Circles 1(圆形1-●) Circles (Outline) , Circles (Outline)(圆形(轮廓)) Circles , Circles(圆) Circle to Square , Circle to Square(圆到方) Circle (Inv.) , Circle (Inv.)(圆(反转)) Circle , Circle(圆形) Chroma Noise , Chroma Noise(色度噪点) Checkered Inverse , Checkered Inverse(↖◥棋盘格反向切割) Checkered , Checkered(◤↗棋盘格切割) Chebyshev , Chebyshev(切比雪夫) Central Perspective Outdoor , Central Perspective Outdoor(中央透视户外) Central Perspective Indoor , Central Perspective Indoor(室内中央视野) Central Perspective Outdoor , Central Perspective Outdoor(中央透视户外) Centimeter , Centimeter(厘米) Center Foreground , Center Foreground(中心前景) Center Background , Center Background(中心背景) Card Suits , Card Suits(纸牌图案) C[Magenta]YK , C[Magenta]YK(C [洋红色] YK) By Value , By Value(通过数值) By Red Component , By Red Component(根据红色成分) By Red Chrominance , By Red Chrominance(根据红色色度) By Luminance , By Luminance(根据亮度Luminance) By Lightness , By Lightness(根据亮度Lightness) By Iteration , By Iteration(通过迭代) By Green Component , By Green Component(根据绿色成分) By Custom Expression , By Custom Expression(通过自定义表达式) By Blue Component , By Blue Component(根据蓝色成分) By Blue Chrominance , By Blue Chrominance(根据蓝色色度) Bump Map , Bump Map(凹凸贴图) Built-in Gray , Built-in Gray(内置灰色) Bronze , Bronze(青铜) Brighter , Brighter(较亮) Bright Pixels , Bright Pixels(亮像素) Braque: The Mandola , Braque: The Mandola(布拉克:曼陀罗) Braque: Little Bay at La Ciotat , Braque: Little Bay at La Ciotat(布拉克:拉西奥塔的小海湾) Braque: Le Viaduc à L'Estaque , Braque: Le Viaduc à L'Estaque(布拉克:埃斯塔克高架桥) Braque: Landscape near Antwerp , Braque: Landscape near Antwerp(布拉克:安特卫普附近的风景) Box , Box(正方体) Bouncing Balls , Bouncing Balls(弹跳球) Bottom-Right , Bottom-Right(右下) Bottom-Left , Bottom-Left(左下) Bottom Right , Bottom Right(右下) Bottom Left , Bottom Left(左下) Bottom Layer , Bottom Layer(下层) Bottom and Top Foreground , Bottom and Top Foreground(底部和顶部前景) Bottom and Right Foreground , Bottom and Right Foreground(底部和右前景) Bottom and Left Foreground , Bottom and Left Foreground(底部和左前景) Both , Both(二者) Blue-Green , Blue-Green(蓝绿) Blue Steel , Blue Steel(蓝钢) Blue Chrominance , Blue Chrominance(蓝色色度) Blue & Red Chrominances , Blue & Red Chrominances(蓝色和红色色度) Bloom , Bloom(辉光) Bloc , Bloc(团块) Blobs Editor , Blobs Editor(斑点编辑器) Blend All Layers , Blend All Layers(混合所有图层) Blank , Blank(空白) Black to White , Black to White(黑到白) Black on White , Black on White(白底黑线) Black on Transparent White , Black on Transparent White(透明黑底·白字) Black on Transparent , Black on Transparent(透明底黑线) Black Dices , Black Dices(黑色骰子) Binary Digits , Binary Digits(二进制数字) Binary , Binary(二元) Bilateral , Bilateral(双边) Bidirectional [Smooth] , Bidirectional [Smooth](双向[平滑]) Bidirectional [Sharp] , Bidirectional [Sharp](双向[锐利]) Bicubic , Bicubic(双三次) Bi-Directional , Bi-Directional(双向) Best Match , Best Match(最佳匹配) Below , Below(下面) Behind , Behind(积压) Bayer , Bayer(拜耳) Batch Processing , Batch Processing(批量处理) Bars , Bars(条形) Balls , Balls(球型·) Backward Vertical , Backward Vertical(◀→垂直分割新图在左) Backward Horizontal , Backward Horizontal(▲↓水平分割新图在上) Backward , Backward(下面) B&W Photograph , B&W Photograph(黑白照片) B-Component , B-Component(B-分量) Avg , Avg(平均值) Average RGB , Average RGB(平均RGB) Average 9x9 , Average 9x9(平均9x9) Average 7x7 , Average 7x7(平均7x7) Average 5x5 , Average 5x5(平均5x5) Average 3x3 , Average 3x3(平均3x3) Average , Average(平均值) Automatic & Contrast Mask , Automatic & Contrast Mask(自动和对比蒙版) Automatic [Scan All Hues] , Automatic [Scan All Hues](自动[扫描所有色调]) Automatic , Automatic(自动) Auto-Clean Bottom Color Layer , Auto-Clean Bottom Color Layer(自动清洁底色层) Auto , Auto(自动) Asplenium Adiantum-Nigrum , Asplenium Adiantum-Nigrum(紫花铁线莲) Ascii , Ascii(Ascii编码) Artistic Round , Artistic Round(艺术-环绕) Artistic Hard , Artistic Hard(艺术-硬) Artistic Modern , Artistic Modern(艺术-现代) Arrows (Outline) , Arrows (Outline)(箭头(轮廓)) Arrows , Arrows(箭头) Arc-Tangent , Arc-Tangent(弧切线) Any , Any(任何) Antisymmetry , Antisymmetry(反对称) Anisotropic , Anisotropic(各向异性) Angular , Angular(角度) And , And(与) Anaglyph: Red/Cyan , Anaglyph: Red/Cyan(立体彩色 红色/青色) Anaglyph Red/cyan Optimized , Anaglyph Red/cyan Optimized(立体彩色 红色/蓝色 优化) Anaglyph Red/cyan , Anaglyph Red/cyan(立体彩色 红色/青色) Anaglyph Reconstruction , Anaglyph Reconstruction(立体彩色 重建) Anaglyph Green/magenta Optimized , Anaglyph Green/magenta Optimized(立体彩色 绿色/洋红 优化) Anaglyph Green/magenta , Anaglyph Green/magenta(立体彩色 绿色/洋红) Anaglyph Blue/yellow Optimized , Anaglyph Blue/yellow Optimized(立体彩色 蓝色/黄色 优化) Anaglyph Blue/yellow , Anaglyph Blue/yellow(立体彩色 蓝色/黄色) Anaglypgh Green/magenta Optimized , Anaglypgh Green/magenta Optimized(Anaglypgh绿色/洋红色优化) Alternating , Alternating(交替的) Alpha , Alpha(透明度) All XY-Flips , All XY-Flips(所有XY翻转) All Tones , All Tones(所有色调) All Layers and Masks , All Layers and Masks(所有图层和蒙版) All but Reference Color , All but Reference Color(除参考色外的所有颜色) All 90° Rotations , All 90° Rotations(全部90° 轮换) All 45° Rotations , All 45° Rotations(全部45° 轮换) All , All(所有) Aligned , Aligned(对齐) Align Image Streams , Align Image Streams(对齐图像流) Aggresive , Aggresive(积极) Additive , Additive(添加) Add , Add(相加) Adaptive , Adaptive(自适应) Achromatopsia , Achromatopsia(色盲) Achromatomaly , Achromatomaly(色弱) A-Component , A-Component(A-分量) 9th , 9th(第9) 90 Deg. , 90 Deg.(90度) 8th , 8th(第8) 8px , 8px(8像素) 8 Keypoints (RGB Corners) , 8 Keypoints (RGB Corners)(8 特征点(RGB拐角)) 8 Grays , 8 Grays(8阶灰色) 7th , 7th(第7) 6th , 6th(第6) 67.5 Deg. , 67.5 Deg.(67.5度) 64px , 64px(64像素) 64 Keypoints , 64 Keypoints(64 特征点) 5th , 5th(第5) 4th , 4th(第4) 45 Deg. , 45 Deg.(45度) 4 Grays , 4 Grays(4阶灰色) 4 Colors , 4 Colors(4色) 3rd , 3rd(第3) 3D Waves , 3D Waves(3D波浪) 3D Starfield , 3D Starfield(3D星空) 3D Rubber Object , 3D Rubber Object(3D橡胶物体) 3D Reflection , 3D Reflection(3D反射) 3D CLUT (Precise) , 3D CLUT (Precise)(3D CLUT(精确)) 3D CLUT (Fast) , 3D CLUT (Fast)(3D CLUT(快速)) 343 Keypoints , 343 Keypoints(343 特征点) 32px , 32px(32像素) 3 Grays , 3 Grays(3阶灰色) 3 Colors , 3 Colors(3色) 2xy-Axes , 2xy-Axes(2xy轴) 2XY-Axes , 2XY-Axes(2XY轴) 2XY Mirror , 2XY Mirror(2XY镜像) 2nd , 2nd(第2) 270 Deg. , 270 Deg.(270度) 27 Keypoints , 27 Keypoints(27 特征点) 256px , 256px(256像素) 22.5 Deg. , 22.5 Deg.(22.5度) 216 Keypoints , 216 Keypoints(216 特征点) 2 Grays , 2 Grays(2阶灰色) 2 Colors , 2 Colors(2色) 1st , 1st(第1) 180 Deg. , 180 Deg.(180度) 16th , 16th(第16) 16px , 16px(16像素) 16 Grays , 16 Grays(16阶灰色) 15th , 15th(第15) 14th , 14th(第14) 13th , 13th(第13) 12th , 12th(第12) 128px , 128px(128像素) 125 Keypoints , 125 Keypoints(125 特征点) 12 Grays , 12 Grays(12阶灰色) 12 Colors , 12 Colors(12色) 11th , 11th(第11) 10th , 10th(第10) 0 Deg. , 0 Deg.(0度) +90 Deg. , +90 Deg.(+90度) +180 Deg. , +180 Deg.(+180度) *Vivid Screen* , *Vivid Screen*(*生动的屏幕*) *Vivid Edges* , *Vivid Edges*(*亮色边缘*) *Graphix Colors , *Graphix Colors(*Graphix颜色) *Dark Screen* , *Dark Screen*(*深色滤色*) *Dark Edges* , *Dark Edges*(*深色边缘*) *Comix Colors* , *Comix Colors*(* Comix颜色*) *Colors Doping* , *Colors Doping*(*彩色掺杂*) *Colors Doping , *Colors Doping(*彩色掺杂) [Cyan]MYK , [Cyan]MYK([青色] MYK) -90 Deg. , -90 Deg.(-90度) - NON / NO - , - NON / NO -(-非/否-) ================================================ FILE: translations/filters/ts2csv.sh ================================================ #!/usr/bin/env bash function usage() { cat <&2 echo "$message" exit 1 } function requires() { type "$1" >& /dev/null || die "Command '$1' not found." } in="$1" [[ -z "$in" ]] && usage [[ ! -e "$in" ]] && die "File not found: $in" [[ ! $in =~ .*\.ts$ ]] && die "Not a ts file: $in" # @param text function html2ascii() { local text="$1" text=${text//&/\&} text=${text//</<} text=${text//>/>} text=${text//"/\"} text=${text//'/\'} echo -n "$text" } echo -n > $output while read line; do comment="" if [[ "$line" =~ \ *\ ]]; then read src read translation if [[ "$translation" =~ \.*\ ]]; then comment="$translation" read translation fi read dummy # src=$(echo "$src") src=${src:8} src=${src%} src=$(html2ascii "$src") translation=$(echo "$translation") translation=${translation:13} translation=${translation%} translation=$(html2ascii "$translation") if [[ -z "$comment" ]]; then echo "$src , $translation" >> $output else comment=$(echo "$comment") comment=${comment:9} comment=${comment%} echo "$src , $translation , $comment" >> $output fi fi done < "$in" ================================================ FILE: translations/fr.ts ================================================ DialogSettings Dialog Paramètres Internet updates Mises à jour internet Update now Mettre à jour maintenant Layout Disposition Interface Interface Preview on the &left Prévisualisation à &gauche Pre&view on right side Prévisualisation à &droite Theme Thème &Default &Défaut Dar&k &Sombre <i>(Restart needed)</I> <i>(Changements effectifs<br/>au prochain lancement.)</i> Language Langue Always enable preview zooming Toujours activer le zoom <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> <html><head/><body><p><span style=" font-style:italic;">(Attention : l'aperçu peut être faussé si ce choix est activé.)</span></p></body></html> Misc Divers Use native file dialog Dialogues de choix de fichier natifs &Enable High-DPI support &Activer le High DPI <i>(Restart needed)</i> <i>(Changement effectif<br/>au prochain lancement.)</i> Filter sources Sources de filtres Other Autre Output messages Messages de sortie &Use native color dialog &Dialogues de choix de couleur natifs Preview Aperçu Timeout (seconds) Délai max. (secondes) Show institution logos Afficher les logos institutionnels Notify when scheduled update fails Signaler quand une mise à jour automatique échoue &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Sélectionnez une couleur GmicQt::DialogSettings Settings Paramètres Never Jamais Daily Journalière Weekly Hebdomadaire Every 2 weeks Toutes les deux semaines Monthly Mensuelle At launch (debug) À chaque lancement (débugage) Output messages Messages de sortie Quiet (default) Aucun message (défaut) Verbose (console) Mode verbeux (console) Verbose (log file) Mode verbeux (fichier de log) Very verbose (console) Mode très verbeux (console) Very verbose (log file) Mode très verbeux (fichier de log) Debug (console) Mode débogage (console) Debug (log file) Mode débogage (fichier de log) Check to use Native/OS color dialog, uncheck to use Qt's Cocher pour utiliser les dialogues natifs, décocher pour utiliser les dialogues Qt Check to use Native/OS file dialog, uncheck to use Qt's Cocher pour utiliser les dialogues de fichier natifs, décocher pour utiliser les dialogues Qt GmicQt::FileParameter Select a file Sélectionnez un fichier GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Sélectionnez un filtre</i> <i>No parameters</i> <i>Aucun paramètre</i> Error parsing filter parameters Erreur d'analyse des paramètres du filtre GmicQt::FiltersPresenter Unknown filter Filtre inconnu Cannot find this fave's original filter Filtre original introuvable pour ce favori GmicQt::FiltersView Remove fave Supprimer le favori Rename Fave Renommer le favori Remove Fave Supprimer le favori Clone Fave Dupliquer le favori Add Fave Ajouter comme favori Remove All Supprimer tous les marqueurs %1 (%2 %3) %1 (%2 %3) Filters filtres Filter filtre Do you really want to remove the following fave? %1 Êtes-vous certain de vouloir supprimer le favori ci-dessous ? %1 GmicQt::FolderParameter Select a folder Sélectionnez un dossier GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) L'image No%1 retournée par le filtre possède %2 canaux (4 est la limite) Image #%1 returned by filter has %2 channels (should be at most 4) L'image No%1 retournée par le filtre possède %2 canaux (4 est la limite) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Au moins un chemin de filtre ou une commande doivent être founis. Custom command (%1) Commande personnalisée (%1) Cannot find filter matching path %1 Impossible de trouver un filtre correspondant au chemin %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Erreur de lecture de la définition des paramètres pour le filtre : %1 Impossible de déterminer les paramètres par défaut. %2 Error parsing supplied command: %1 Erreur d'analyse de la commande fournie: %1 Supplied command (%1) does not match path (%2), (should be %3). La commande fournie (%1) ne correspond pas au chemin (%2), (ce devrait être %3). Filter execution failed, but with no error message. L'exécution du filtre a échoué, mais sans message d'erreur. GmicQt::InOutPanel Input layers Calques en entrée None Aucun Active (default) Actif (défaut) All Tous Active and below Actif et en dessous Active and above Actif et au dessus All visible Tous les calques visibles All invisible Tous les calques invisibles Output mode Mode de sortie In place (default) Sur place (défaut) New layer(s) Nouveau(x) calque(s) New active layer(s) Nouveau(x) calque(s) actif(s) New image Nouvelle image Input / Output Entrée / Sortie Input Entrée Output Sortie GmicQt::LanguageSelectionWidget System default (%1) Langue du système (%1) Translations are very likely to be incomplete. La traduction est certainement très incomplète. GmicQt::MainWindow Add fave Ajouter un favori Reset parameters to default values Réinitialiser les paramètres du filtre Randomize parameters Paramètres aléatoires Copy G'MIC command to clipboard Copier la commande G'MIC dans le presse-papier Rename fave Renommer un favori Remove fave Supprimer un favori Expand/Collapse all Déplier/Réduire tout G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandie Université (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Mode sélection Update filters Mettre à jour les filtres (Ctrl+R / F5) Manage visible tags (Right-click on a fave or a filter to set/remove tags) Gérer les tags visibles (Ajouter/supprimer des tags par clic droit sur un favori ou sur un filtre) Force &quit Forcer la &terminaison Full Entier Forward Horizontal Séparation horizontale avant Forward Vertical Séparation verticale avant Backward Horizontal Séparation horizontale arrière Backward Vertical Séparation verticale arrière Duplicate Top Copie en haut Duplicate Left Copie à gauche Duplicate Bottom Copie en bas Duplicate Right Copie à droite Duplicate Horizontal Copie horizontale Duplicate Vertical Copie verticale Checkered En damier Checkered Inverse En damier inversé Update completed Mise à jour réussie Filter definitions have been updated. Les définitions de filtres ont été mises à jour. No download was needed. Aucun téléchargement n'était requis. Plugin was called with a filter path with no matching filter: Path: %1 Le plugin a été appelé avec un chemin qui ne correspond à aucun filtre : Chemin: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Erreur de lecture de la définition des paramètres pour le filtre : %1 Impossible de déterminer les paramètres par défaut. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 Le plugin a été appelé avec une commande qui ne correspond à aucun filtre : Commande: %1 [Elapsed time: %1] [Temps écoulé : %1] Plugin was called with a command that cannot be parsed: %1 Le plugin a été appelé avec une commande invalide : %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Le plugin a été appelé avec une commande qui ne correspond pas au chemin fourni : Chemin : %1 Commande : %2 Commande trouvée pour le chemin : %3 Filters update could not be achieved La mise à jour des filtres n'a pas réussi The update could not be achieved<br>because of the following errors:<br> La mise à jour n'a pas réussi en raison<br/>des erreurs suivantes :<br/> Update error Erreurs lors de la mise à jour Error Erreur Waiting for cancelled jobs... En attente des traitements annulés... Import faves Importer les favoris Do you want to import faves from file below?<br/>%1 Voulez-vous importer les favoris du fichier ci-dessous ?<br/>%1 Don't ask again Ne plus me demander Confirmation Confirmation A gmic command is running.<br>Do you really want to close the plugin? Une commande gmic est en cours d'exécution.<br>Voulez-vous vraiment fermer le plugin ? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Entrée GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Progression du greffon G'MIC-Qt Abort Annuler [Processing 88:00:00.888 | 888.9 GiB] [Traitement en cours 88:00:00.888 | 888.9 Gio] [Processing 88:00:00.888] [Traitement en cours 88:00:00.888] Updating filters... Mise à jour des filtres... [Processing %1 | %2] [Traitement en cours %1 | %2] [Processing %1] [Traitement en cours %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression Progression du greffon G'MIC-Qt %1 seconds %1 secondes [Processing %1 | %2] [Traitement en cours %1 | %2] [Processing %1] [Traitement en cours %1] GmicQt::SearchFieldWidget Search Rechercher Search in filters list (%1) Rechercher dans la liste des filtres (%1) GmicQt::SourcesWidget Move source up Déplacer la source vers le haut Move source down Déplacer la source vers le bas Add local file (dialog) Ajouter un fichier local (dialogue) Reset filter sources Réinitialiser les sources de filtres Macros: $HOME %USERPROFILE% $VERSION Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Les variables d'environement (e.g. %USERPROFILE% ou %HOMEDIR%) sont substituées dans les sources. VERSION est aussi une variable définie comme le numéro de version courante de G'MIC (actuellement %1). Macros: $HOME $VERSION Macros : $HOME $VERSION Remove source (Delete) Supprimer une source (Suppr) Disable Désactiver Enable without updates Activer sans les mises à jour Enable with updates (recommended) Activer avec les mises à jour (recommandé) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Les variables d'environnement (e.g. $HOME ou ${HOME}) sont substituées dans les sources. VERSION est aussi une variable prédéfinie à la valeur de la version de G'MIC (actuellement %1). New source Nouvelle source Select a file Sélectionnez un fichier GmicQt::Updater Error downloading %1 (empty file?) Erreur de téléchargement de %1 (fichier vide ?) Could not read/decompress %1 Impossible de lire/décompresser %1 Error writing file %1 Erreur d'écriture du fichier %1 Error downloading %1<br/>Error %2: %3 Erreur lors du téléchargement de %1<br/> Erreur %2 : %3 Download timeout: %1 Téléchargement annulé (hors délai) : %1 GmicQt::VisibleTagSelector Show All Filters Montrer tous les filtres Show %1 Tags Montrer les marqueurs %1s GmicQt::ZoomLevelSelector Zoom in Zoom avant Zoom out Zoom arrière Reset zoom Zoom par défaut Warning: Preview may be inaccurate (zoom factor has been modified) Attention : l'aperçu peut être erroné (le facteur de zoom a été modifié) HeadlessProgressDialog Dialog Progression Cancel Annuler InOutPanel Input / Output Entrée / Sortie ... ... Input layers Calques en entrée Output mode Mode de sortie JpegQualityDialog Dialog JPEG Quality Facteur de qualité JPEG 0 0 100 100 Always use this quality for this execution of G'MIC-Qt Toujours cette qualité pour cette exécution de G'MIC-Qt &Cancel &Annuler &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Changement effectif<br/>au prochain lancement.)</i> Translate filters (WIP) Traduire les filtres (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Télécharger les définitions de filtres depuis les sources distantes</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) Type de prévisualisation (Ctrl+Maj+P) TextLabel TextLabel ... ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> <html><head/><body><p>Activer/désactiver l'aperçu<br/>(Ctrl+P)<br/>(cliquez droit sur l'image d'aperçu pour basculer instantanément)</p></body></html> Preview Aperçu &Settings... &Paramètres... &Close &Fermer &Cancel &Annuler &Fullscreen &Plein écran &Apply &Appliquer &OK &Ok MultilineTextParameterWidget Form GMIC Update Mettre à jour ProgressInfoWidget Form GMIC Abort Annuler TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Annuler QObject Select an image to open... Sélectionnez une image à ouvrir... Error Erreur Could not open file. Impossible d'ouvrir le fichier. Default image Image par défaut Visible Visible Available filters (%1) Filtres disponibles (%1) %1 Tag Marqueur %1 None Aucune Red rouge Green vert Blue bleu Cyan cyan Magenta magenta Yellow jaune Could not install translator for file %1 Impossible d'installer le traducteur pour le fichier %1 Could not load translation file %1 Impossible de charger le fichier de traduction %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 Gio %1 MiB %1 Mio %1 KiB %1 Kio %1 B %1 o SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: Filtres officiels : File / URL Fichier / URL Add new Ajouter nouveau ... ... Macros: $HOME $VERSION Macros : $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Résultat du filtre G'MIC-Qt Close Fermer Save as... Enregistrer sous... %1 file (*.%2 *.%3) Fichier %1 (*.%2 *.%3) Save image as... Enregistrer l'image sous... gmic_qt_standalone::ImageView Error Erreur Could not write image file %1 Impossible d'écrire le fichier %1 ================================================ FILE: translations/id.ts ================================================ DialogSettings Dialog Dialog Internet updates Pembaruan internet Update now Perbarui sekarang Layout Tata letak Interface Preview on the &left Tinjauan di &kiri Pre&view on right side Tinjauan di &kanan Theme Tema &Default &Setelan standar Dar&k &Gelap <i>(Restart needed)</I> <i>(Restart diperlukan)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Restart diperlukan)</i> Filter sources Other Output messages Pesan-pesan keluaran &Use native color dialog &Gunakan dialog warna native Preview Tinjauan Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Pilih warna GmicQt::DialogSettings Settings Never Tidak pernah Daily Harian Weekly Mingguan Every 2 weeks Tiap 2 minggu Monthly Bulanan At launch (debug) Pada pembukaan (debug) Output messages Pesan-pesan keluaran Quiet (default) Sunyi (setelan standar) Verbose (console) Verbose (konsol) Verbose (log file) Verbose (berkas laporan) Very verbose (console) Very verbose (konsol) Very verbose (log file) Very verbose (berkas laporan) Debug (console) Debug (konsol) Debug (log file) Debug (berkas laporan) Check to use Native/OS color dialog, uncheck to use Qt's Centang untuk gunakan warna native, Tidak centang untuk gunakan Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Pilih berkas GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Pilih filter</i> <i>No parameters</i> <i>Tak ada parameter</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Hapus favorit Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Pilih folder GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Lapisan masukan None Tidak ada Active (default) Aktif (setelan standar) All Semua Active and below Aktif dan bawah Active and above Aktif dan atas All visible Semua terlihat All invisible Semua tak terlihat Output mode Modus keluaran In place (default) Pada tempatnya (setelan standar) New layer(s) Lapisan(-lapisan) baru New active layer(s) Lapisan(-lapisan) aktif baru New image Citra baru Input / Output Masukan / Keluaran Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Tambah favorit Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Rename fave Namai ulang favorit Remove fave Hapus favorit Expand/Collapse all Expand/Collapse semua G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandie Université (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Perbarui filter (Ctrl+R / F5) Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Pembaruan selesai Filter definitions have been updated. Definisi filter telah diperbarui. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> Pembaruan gagal<br/>karena error berikut:<br/> Update error Error pada pembaruan Error Error Waiting for cancelled jobs... Import faves Impor favorit Do you want to import faves from file below?<br/>%1 Apa anda ingin mengimpor favorit dari berkas dibawah?<br/>%1 Don't ask again Jangan tanya lagi Confirmation Konfirmasi A gmic command is running.<br>Do you really want to close the plugin? Perintah gmic tengah berjalan.<br>Apa anda benar ingin menutup plugin? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Hentikan [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Memproses %1 | %2] [Processing %1] [Memproses %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 detik [Processing %1 | %2] [Memproses %1 | %2] [Processing %1] [Memproses %1] GmicQt::SearchFieldWidget Search Cari Search in filters list (%1) Cari di daftar filter (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Pilih berkas GmicQt::Updater Error downloading %1 (empty file?) Error download %1 (berkas kosong?) Could not read/decompress %1 Tak terbaca/dekompresi %1 Error writing file %1 Error menulis berkas %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Unduhan menunggu: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Dialog Cancel Batal InOutPanel Input / Output Masukan / Keluaran ... ... Input layers Lapisan masukan Output mode Modus keluaran JpegQualityDialog Dialog Dialog JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Batalkan &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Restart diperlukan)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Scaricare le definizioni dei filtri da remoto</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel LabelTeks ... ... MainWindow JendelaUtama <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Tinjauan &Close &Cancel &Batalkan &Fullscreen &Layar penuh &Apply &Terapkan &OK &Ok MultilineTextParameterWidget Form GMIC Update Perbarui ProgressInfoWidget Form GMIC Abort Hentikan TextLabel LabelTeks ProgressInfoWindow MainWindow JendelaUtama TextLabel LabelTeks Cancel Batalkan QObject Select an image to open... Pilih citra untuk dibuka... Error Error Could not open file. Default image Visible Available filters (%1) Filter tersedia (%1) %1 Tag None Tidak ada Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Bingkai SourcesWidget Form GMIC Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Error Could not write image file %1 ================================================ FILE: translations/it.ts ================================================ DialogSettings Dialog Parametri Internet updates Aggiornamento da internet Update now Aggiorna Layout Disposizione Interface Preview on the &left Anteprima a &sinistra Pre&view on right side Anteprima a &destra Theme Tema &Default &Predefinito Dar&k &Scuro <i>(Restart needed)</I> <i>(Modifica effettiva<br/>al prossimo riavvio.)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Modifica effettiva<br/>al prossimo riavvio.)</i> Filter sources Other Output messages Messaggi in uscita &Use native color dialog &Finestra selezione colori nativi Preview Anteprima Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Selezionare un colore GmicQt::DialogSettings Settings Never Mai Daily Giornaliero Weekly Settimanale Every 2 weeks Bisettimanale Monthly Mensile At launch (debug) All'avvio (debug) Output messages Messaggi in uscita Quiet (default) Silenzioso (defaut) Verbose (console) Modalità verbosa (console) Verbose (log file) Modalità verbosa (file di log) Very verbose (console) Molto verboso (console) Very verbose (log file) Molto verboso (fichier de log) Debug (console) Molto verboso (console) Debug (log file) Molto verboso (fichier de log) Check to use Native/OS color dialog, uncheck to use Qt's Selezionare per utilizzare i colori nativi, deselezionare per utilizzare Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Selezionare un file GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Selezionare un filtro</i> <i>No parameters</i> <i>Nessun parametro</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Elimina favorito Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Selezionare una cartella GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Livelli in ingresso None Nessuno Active (default) Attivo (predefinito) All Tutti Active and below Attivo e sottostanti Active and above Attivo e soprastanti All visible Tutti i visibili All invisible Tutti gli invisibili Output mode Modalità di uscita In place (default) in loco (defaut) New layer(s) Nuovo(x) livello(s) New active layer(s) Nuovo(x) livello(s) attivo(s) New image Nuova immagine Input / Output Ingresso / Uscita Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Aggiungi ai favoriti Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Copia il comando G'MIC negli appunti Rename fave Rinomina favorito Remove fave Elimina favorito Expand/Collapse all Espandi/Collassa tutto G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandie Université (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Aggiorna filtri Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Aggiornamento completato Filter definitions have been updated. Le definizioni dei filtri sono state aggiornate. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> L'aggiornamento non è stato possibile<br/>a causa dei seguenti errori :<br/> Update error Errori durante l'aggiornamento Error Errore Waiting for cancelled jobs... Import faves Importa favoriti Do you want to import faves from file below?<br/>%1 Vuoi davvero importare i favoriti dal file sottostante?<br/>%1 Don't ask again Non richiedere nuovamente Confirmation Conferma A gmic command is running.<br>Do you really want to close the plugin? Un comando gmic è in esecuzione.<br>Vuoi davvero chiudere il plugin? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Annullare [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Processing %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 secondi [Processing %1 | %2] [Processing %1] GmicQt::SearchFieldWidget Search Ricerca Search in filters list (%1) Ricerca nella finestra dei filtri (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Selezionare un file GmicQt::Updater Error downloading %1 (empty file?) Errore di scaricamento %1 (File vuoto ?) Could not read/decompress %1 Impossibile leggere/decomprimere %1 Error writing file %1 Errore scrittura file %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Tempo scaduto: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Avanzamento Cancel Annulla InOutPanel Input / Output Ingresso / Uscita ... ... Input layers Livelli in ingresso Output mode Modalità di uscita JpegQualityDialog Dialog JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Annulla &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Modifica effettiva<br/>al prossimo riavvio.)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Scaricare le definizioni dei filtri da remoto</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Anteprima &Close &Cancel &Annulla &Fullscreen &Tutto schermo &Apply &Applica &OK &Ok MultilineTextParameterWidget Form GMIC Update Aggiornare ProgressInfoWidget Form GMIC Abort Annullare TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Cancel QObject Select an image to open... Selezionare un'immagine da aprire... Error Errore Could not open file. Default image Visible Available filters (%1) Filtri disponibili(%1) %1 Tag None Nessuno Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Errore Could not write image file %1 ================================================ FILE: translations/ja.ts ================================================ DialogSettings Dialog ダイアログ Internet updates インターネット更新 Update now 今すぐ更新 Layout レイアウト Interface Preview on the &left 左側にプレビューを表示(&L) Pre&view on right side 右側にプレビューを表示(&V) Theme テーマ &Default デフォルト(&D) Dar&k 暗い色(&K) <i>(Restart needed)</I> <i>(再起動が必要です)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(再起動が必要です)</i> Filter sources Other Output messages 出力メッセージ &Use native color dialog ネイティブな色選択ダイアログを使用 Preview プレビュー Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok OK(&O) FiltersView Form フォーム GmicQt::ColorParameter Select color 色を選択 GmicQt::DialogSettings Settings Never 行わない Daily 毎日 Weekly 毎週 Every 2 weeks 隔週 Monthly 毎月 At launch (debug) 起動時 (デバッグ用) Output messages 出力メッセージ Quiet (default) なし (デフォルト) Verbose (console) 詳細 (コンソール) Verbose (log file) 詳細 (ログファイル) Very verbose (console) 非常に詳細 (コンソール) Very verbose (log file) 非常に詳細 (ログファイル) Debug (console) デバッグ (コンソール) Debug (log file) デバッグ (ログファイル) Check to use Native/OS color dialog, uncheck to use Qt's チェックすると、システムに標準搭載された色選択ダイアログを使用します。チェックを外すと、Qt の色選択ダイアログを使用します Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file ファイルを選択 GmicQt::FilterParametersWidget <i>Select a filter</i> <i>フィルタを選択</i> <i>No parameters</i> <i>パラメータなし</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave お気に入りから削除 Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder フォルダを選択 GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers 入力レイヤー None なし Active (default) アクティブなレイヤー (デフォルト) All すべて Active and below アクティブなレイヤーとその下のレイヤー Active and above アクティブなレイヤーとその上のレイヤー All visible すべての可視レイヤー All invisible すべての不可視レイヤー Output mode 出力モード In place (default) 現在のレイヤー (デフォルト) New layer(s) 新規レイヤー New active layer(s) 新規アクティブレイヤー New image 新規画像 Input / Output 入力 / 出力 Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave お気に入りに追加 Reset parameters to default values パラメータの値を初期化 Randomize parameters Copy G'MIC command to clipboard G'MICコマンドをクリップボードにコピー Rename fave お気に入りの名前を変更 Remove fave お気に入りから削除 Expand/Collapse all すべて展開/すべて畳む G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>フランス国立科学研究センター (https://www.cnrs.fr)<br/>カーン・ノルマンディー大学 (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode 選択モード Update filters フィルタを更新 Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed 更新が完了しました Filter definitions have been updated. フィルタ定義の更新が完了しました。 No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> 以下のエラーにより<br/>更新に失敗しました:<br/> Update error 更新エラー Error エラー Waiting for cancelled jobs... Import faves お気に入りをインポート Do you want to import faves from file below?<br/>%1 以下のファイルからお気に入りをインポートしますか?<br/>%1 Don't ask again 次回から確認しない Confirmation 確認 A gmic command is running.<br>Do you really want to close the plugin? G'MIC コマンドが実行中です。<br>本当にプラグインを終了しますか? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort 中止 [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Processing %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 秒 [Processing %1 | %2] [Processing %1] GmicQt::SearchFieldWidget Search 検索 Search in filters list (%1) フィルタ一覧を検索 (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file ファイルを選択 GmicQt::Updater Error downloading %1 (empty file?) %1 のダウンロード中にエラーが発生しました (空ファイル?) Could not read/decompress %1 %1 を読み込み・展開できませんでした Error writing file %1 ファイル %1 の書き込み中にエラーが発生しました Error downloading %1<br/>Error %2: %3 Download timeout: %1 ダウンロード中にタイムアウト: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in ズームイン Zoom out ズームアウト Reset zoom 拡大率をリセット Warning: Preview may be inaccurate (zoom factor has been modified) 警告: プレビューは実際の処理結果と異なる場合があります (拡大率が変更されています) HeadlessProgressDialog Dialog ダイアログ Cancel キャンセル InOutPanel Input / Output 入力 / 出力 ... ... Input layers 入力レイヤー Output mode 出力モード JpegQualityDialog Dialog ダイアログ JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel キャンセル(&C) &Ok OK(&O) LanguageSelectionWidget Form フォーム <i>(Restart needed)</i> <i>(再起動が必要です)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Télécharger les définitions de filtres depuis les sources distantes</p></body></html> Internet インターネット Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview プレビュー &Close &Cancel キャンセル(&C) &Fullscreen フルスクリーン(&F) &Apply 適用(&A) &OK OK(&O) MultilineTextParameterWidget Form GMIC Update 更新 ProgressInfoWidget Form GMIC Abort 中止 TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel キャンセル QObject Select an image to open... 開く画像を選択... Error エラー Could not open file. Default image Visible 一覧に表示 Available filters (%1) 使用可能なフィルタ (%1) %1 Tag None なし Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame フレーム SourcesWidget Form Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form フォーム gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error エラー Could not write image file %1 ================================================ FILE: translations/lrelease.sh ================================================ #!/usr/bin/env bash function usage() { cat <&2 echo "$message" exit 1 } function exists() { type "$1" >& /dev/null } in="$1" [[ -z "$in" ]] && usage [[ ! -e "$in" ]] && die "File not found: $in" [[ ! $in =~ .*\.ts$ ]] && die "Not a ts file: $in" if exists lrelease-qt5 ; then exec lrelease-qt5 -compress "$in" elif exists lrelease ; then exec lrelease -compress "$in" else die "No lrelease(-qt5) command available." fi ================================================ FILE: translations/nl.ts ================================================ DialogSettings Dialog Instellingen Internet updates Update now Nu updaten Layout Lay-out Interface Preview on the &left Preview aan &linkerzijde Pre&view on right side Preview aan &rechterzijde Theme Thema &Default &standaard Dar&k &Donker <i>(Restart needed)</I> <i>(Opnieuw opstarten nodig)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Opnieuw opstarten nodig)</i> Filter sources Other Output messages Uitvoer berichten &Use native color dialog &Gebruik standaard kleur in dialoogvenster Preview Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Selecteer een kleur GmicQt::DialogSettings Settings Never Nooit Daily Dagelijks Weekly Weekelijks Every 2 weeks Elke twee weken Monthly Maandelijks At launch (debug) Bij opstarten (debug) Output messages Uitvoer berichten Quiet (default) Geen bericht (standaard) Verbose (console) Uitgebreid (console) Verbose (log file) Uitgebreid (logbestand) Very verbose (console) Zeer uitgebreid (console) Very verbose (log file) Zeer uitgebreid (logbestand) Debug (console) Debug (console) Debug (log file) Debug (logbestand) Check to use Native/OS color dialog, uncheck to use Qt's Aan voor standaard OS-kleur omgeving, Uit voor QT-kleur Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Selecteer een bestand GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Selecteer een filter</i> <i>No parameters</i> <i>Geen parameters</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Verwijder favoriet Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Selecteer een map GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Invoer lagen None Geen Active (default) Actief (standaard) All Alle Active and below Actief en daaronder Active and above Actief en daarboven All visible Alle zichtbare lagen All invisible Alle onzichtbare lagen Output mode Uitvoer-modus In place (default) In plaats van (standaard) New layer(s) Nieuwe laag/lagen New active layer(s) Nieuwe actieve laag/lagen New image Nieuwe afbeelding Input / Output Invoer / Uitvoer Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Voeg favoriet toe Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Kopieer G'MIC commando naar klembord Rename fave Hernoem een favoriet Remove fave Verwijder favoriet Expand/Collapse all Alles Uitbreiden/Samenvouwen G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandie Universiteit (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Update voltooid Filter definitions have been updated. De filter-definities zijn bijgewerkt. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> De update is mislukt<br/>vanwege de volgende fouten:<br/> Update error Update fout Error Fout Waiting for cancelled jobs... Import faves Importeer favorieten Do you want to import faves from file below?<br/>%1 Wilt u favorieten importeren van het bestand hieronder?<br/>%1 Don't ask again Niet opnieuw vragen Confirmation Bevestiging A gmic command is running.<br>Do you really want to close the plugin? GMIC voert momenteel een commando uit.<br>Wilt u echt afbreken? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Annuleer [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Processing %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 seconden [Processing %1 | %2] [Processing %1] GmicQt::SearchFieldWidget Search Zoek Search in filters list (%1) Zoek in lijst met filters (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Selecteer een bestand GmicQt::Updater Error downloading %1 (empty file?) Downloadfout %1 (fichier vide ?) Could not read/decompress %1 Niet leesbaar/uitpakbaar %1 Error writing file %1 Kan bestand niet schrijven %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Vooruitgang Cancel Annuleer InOutPanel Input / Output Invoer / Uitvoer ... Input layers Invoer lagen Output mode Uitvoer-modus JpegQualityDialog Dialog JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Annuleer &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Opnieuw opstarten nodig)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Download filter-definities van afzonderlijke bronnen</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview &Close &Cancel &Annuleer &Fullscreen &Schermvullend &Apply &Toepassen &OK MultilineTextParameterWidget Form GMIC Update Update ProgressInfoWidget Form GMIC Abort Annuleer TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Annuleren QObject Select an image to open... Selecteer een afbeelding om te openen... Error Fout Could not open file. Default image Visible Available filters (%1) Beschikbare filters (%1) %1 Tag None Geen Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Fout Could not write image file %1 ================================================ FILE: translations/pl.ts ================================================ DialogSettings Dialog Okno dialogowe Internet updates Aktualizacje z Internetu Update now Uaktualnij teraz Layout Układ Interface Preview on the &left Podgląd &po lewej stronie Pre&view on right side Podgląd &po prawej stronie Theme Wygląd &Default &Domyślnie Dar&k &Ciemny <i>(Restart needed)</I> <i>(Wymaga zrestartowania)</i> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Wymaga zrestartowania)</i> Filter sources Other Output messages Komunikat wyjścia &Use native color dialog &Użyć kolorów systemowych Preview Podgląd Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Wybór koloru GmicQt::DialogSettings Settings Never Nigdy Daily Codziennie Weekly Cotygodniowo Every 2 weeks Co 2 tygodnie Monthly Miesięcznie At launch (debug) Przy starcie (debugowanie) Output messages Komunikat wyjścia Quiet (default) Brak (domyślnie) Verbose (console) Ogólny (konsola) Verbose (log file) Ogólny (plik log) Very verbose (console) Dokładny (konsola) Very verbose (log file) Dokładny (plik log) Debug (console) Debugowanie (konsola) Debug (log file) Debugowanie (plik log) Check to use Native/OS color dialog, uncheck to use Qt's Zaznacz aby używać natywny/systemowy zestaw kolorów, wyłącz dla QT Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Wybierz plik GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Wybierz filtr</i> <i>No parameters</i> <i>Brak parametrów</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Usuń z ulubionych Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Wybierz katalog GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Wartstwy wejściowe None Brak Active (default) Aktywna (domyślnie) All Wszystkie Active and below Aktywna i poniżej Active and above Aktywna i powyżej All visible Wszystkie widoczne All invisible Wszystkie niewidoczne Output mode Tryb wyjścia In place (default) Na miejscu (domyślnie) New layer(s) Nowa(e) warstwa(y) New active layer(s) Nowa(e) aktywna(e) warstwa(y) New image Nowy obraz Input / Output Wejście/Wyjście Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Dodaj do ulubionych Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Skopiuj polecenie G'MIC do schowka Rename fave Zmiana nazwy ulubionego Remove fave Usuń z ulubionych Expand/Collapse all Rozwiń/zwiń wszystko G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Uniwerstytet Normandii (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Uaktualnienie filtrów Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Aktualizacja ukończona Filter definitions have been updated. Filtry zaktualizowane. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> Aktualizacja nie powiodła się<br/>z następujących powodów:<br/> Update error Błąd aktualizacji Error Wystąpił błąd Waiting for cancelled jobs... Import faves Importuj ulubione Do you want to import faves from file below?<br/>%1 Czy chcesz importować ulubione z pliku poniżej?<br/>%1 Don't ask again Nie pytaj ponownie Confirmation Potwierdż A gmic command is running.<br>Do you really want to close the plugin? Polecenie gmic jest uruchomione.<br>Czy naprawdę chcesz zamknąć wtyczkę? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Anuluj [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Przetwarzanie %1 | %2] [Processing %1] [Przetwarzanie %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 sekund [Processing %1 | %2] [Przetwarzanie %1 | %2] [Processing %1] [Przetwarzanie %1] GmicQt::SearchFieldWidget Search Wyszukiwanie Search in filters list (%1) Szukaj w liście filtrów (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Wybierz plik GmicQt::Updater Error downloading %1 (empty file?) Błąd pobierania %1 (Pusty plik?) Could not read/decompress %1 Błąd odczytu/dekompresji %1 Error writing file %1 Błąd zapisu pliku %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Limit czasu pobierania: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Okno dialogowe Cancel Anuluj InOutPanel Input / Output Wejście/Wyjście ... Input layers Wartstwy wejściowe Output mode Tryb wyjścia JpegQualityDialog Dialog Okno dialogowe JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Anuluj &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Wymaga zrestartowania)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Uaktualnienie filtrów przez internet</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Podgląd &Close &Cancel &Anuluj &Fullscreen &Pełny ekran &Apply &Zastosuj &OK &Ok MultilineTextParameterWidget Form GMIC Update Uaktualnij ProgressInfoWidget Form GMIC Abort Anuluj TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Anuluj QObject Select an image to open... Wybierz obraz... Error Wystąpił błąd Could not open file. Default image Visible Available filters (%1) Dostępne filtry (%1) %1 Tag None Brak Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Ramka SourcesWidget Form GMIC Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Wystąpił błąd Could not write image file %1 ================================================ FILE: translations/pt.ts ================================================ DialogSettings Dialog Diálogo Internet updates Atualições de internet Update now Atualizar agora Layout Traçado Interface Preview on the &left Pré-visualização à &esquerda Pre&view on right side Pré-visualização à &direita Theme &Default &Valor padrão Dar&k &Escuro <i>(Restart needed)</I> <i>(Reinício necessário)</i> Language Idioma Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Reinício necessário)</i> Filter sources Other Output messages Mensagens de saída &Use native color dialog &Usar cor nativa nos diálogos Preview Previsualização Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Escolher cor GmicQt::DialogSettings Settings Never Nunca Daily Diariamente Weekly Semanal Every 2 weeks Cada 2 semanas Monthly Mensal At launch (debug) Ao iniciar (depurar erros) Output messages Mensagens de saída Quiet (default) Silêncioso (padrão) Verbose (console) Modo verboso (consola) Verbose (log file) Modo verboso (ficheiro de registro) Very verbose (console) Modo muito verboso (consola) Very verbose (log file) Modo muito verboso (ficheiro de registro) Debug (console) Depurar erros (consola) Debug (log file) Depurar erros (ficheiro de registro) Check to use Native/OS color dialog, uncheck to use Qt's Selecionar para usar o diálogo de cor nativa / SO, deselecionar para usar o do Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Selecionar um ficheiro GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Selecionar um filtro</i> <i>No parameters</i> <i>Sem parâmetros</i> Error parsing filter parameters Erro nos parâmetros do filtro GmicQt::FiltersPresenter Unknown filter Filtro desconhecido Cannot find this fave's original filter GmicQt::FiltersView Remove fave Remover um favorito Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Selecionar unma pasta GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Camadas de entrada None Nenhuma Active (default) Ativa (padrão) All Todas Active and below Ativa e abaixo Active and above Ativa e acima All visible Todas as visíveis All invisible Todas as invisíveis Output mode Modo de saída In place (default) No sitio (padrão) New layer(s) Nova(s) camada(s) New active layer(s) Nova(s) camada(s) ativa(s) New image Nova imagem Input / Output Entrada / Saída Input Entrada Output Saída GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Acrescentando um favorito Reset parameters to default values Resetar parametros para o valor padrão Randomize parameters Copy G'MIC command to clipboard Copiar o comando G'MIC para a prancheta Rename fave Renomear um favorito Remove fave Remover um favorito Expand/Collapse all Expandir/Encolher todos G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Universidad da Normandia (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Modo de seleção Update filters Atualizar filtros Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Atualização concluída Filter definitions have been updated. As definições dos filtros foram atualizados. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> A actualização não foi possível<br>devido aos seguintes erros:<br/> Update error Erro na actualização Error Erro Waiting for cancelled jobs... Import faves Importar favoritos Do you want to import faves from file below?<br/>%1 Deseja importar favoritos do arquivo abaixo?<br/>%1 Don't ask again No volvar a perguntar Confirmation Confirmar A gmic command is running.<br>Do you really want to close the plugin? Um comando do gmic está sendo executado.'exécution.<br>Desejas realmente fechar o plug-in? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Abortar [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Em processamento %1 | %2] [Processing %1] [Em processamento %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 segundos [Processing %1 | %2] [Em processamento %1 | %2] [Processing %1] [Em processamento %1] GmicQt::SearchFieldWidget Search Procurar Search in filters list (%1) Procurar na lista de filtros (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Selecionar um ficheiro GmicQt::Updater Error downloading %1 (empty file?) Erro ao descarregar %1 (ficheiro vazio?) Could not read/decompress %1 Impossível ler / descomprimir %1 Error writing file %1 Erro ao gravar o ficheiro %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Descarga anulada (tempo limite) : %1 GmicQt::VisibleTagSelector Show All Filters Exibir todos os filtros Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Diálogo Cancel Cancelar InOutPanel Input / Output Entrada / Saída ... Input layers Camadas de entrada Output mode Modo de saída JpegQualityDialog Dialog Diálogo JPEG Quality Qualidade do JPEG 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Cancelar &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Reinício necessário)</i> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Descaregar as definições do filtro a partir de fontes remotas</p></body></html> Internet Internet Preview type (Ctrl+Shift+P) &Settings... TextLabel Rótulo de texto ... MainWindow Janela Principal <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Previsualização &Close &Cancel &Cancelar &Fullscreen &Tela cheia &Apply &Aplicar &OK &Ok MultilineTextParameterWidget Form GMIC Update Atualizar ProgressInfoWidget Form GMIC Abort Abortar TextLabel Rótulo de texto ProgressInfoWindow MainWindow Janela Principal TextLabel Rótulo de texto Cancel Cancelar QObject Select an image to open... Selecionar imagem à abrir... Error Erro Could not open file. Não pode abrir arquivo. Default image Imagem padrão Visible Visível Available filters (%1) Filtros disponíveis (%1) %1 Tag None Nenhuma Red Vermelho Green Verde Blue Azul Cyan Ciano Magenta Yellow Amarelo Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Moldura SourcesWidget Form GMIC Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Fechar Save as... Salvar como... %1 file (*.%2 *.%3) Save image as... Salvar imagem como... gmic_qt_standalone::ImageView Error Erro Could not write image file %1 Não foi possível gravar a imagem %1 ================================================ FILE: translations/ru.ts ================================================ DialogSettings Dialog Диалоговое окно Internet updates Обновления из Интернета Update now Обновить сейчас Layout Расположение элементов Interface Вид Preview on the &left Предпросмотр &слева Pre&view on right side Предпросмотр &справа Theme Тема &Default &По умолчанию Dar&k &Тёмная <i>(Restart needed)</I> <i>(Требуется перезапуск)</i> Language Язык Always enable preview zooming Всегда разрешать масштабирование предпросмотра <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> <html><head/><body><p><span style=" font-style:italic;">(Внимание: предпросмотр может быть неточным<br/>если включено.)</span></p></body></html> Misc Разное Use native file dialog &Enable High-DPI support &Включить поддержку высокого разрешения <i>(Restart needed)</i> <i>(Требуется перезапуск)</i> Filter sources Other Другое Output messages Сообщения о выводе &Use native color dialog &Использовать родной цвет Preview Предпросмотр Timeout (seconds) Тайм-аут (в секундах) Show institution logos Отображение институциональных логотипов Notify when scheduled update fails Уведомлять в случае неудачи запланированного обновления &Ok &Ok FiltersView Form GMIC GmicQt::ColorParameter Select color Выбрать цвет GmicQt::DialogSettings Settings Never Никогда Daily Ежедневно Weekly Еженедельно Every 2 weeks Каждые 2 недели Monthly Ежемесячно At launch (debug) При запуске (debug) Output messages Сообщения о выводе Quiet (default) Тихий (по умолчанию) Verbose (console) Подробный (консоль) Verbose (log file) Подробный (файл журнала) Very verbose (console) Очень подробный (консоль) Very verbose (log file) Очень подробный (файл журнала) Debug (console) Отладка (консоль) Debug (log file) Отладка (файл журнала) Check to use Native/OS color dialog, uncheck to use Qt's Вкл. для родных/ОС настроек цвета диалогового окна, Выкл. для QT Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Выбрать файл GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Выбрать фильтр</i> <i>No parameters</i> <i>Параметры отсутствуют</i> Error parsing filter parameters Ошибка при анализе параметров фильтра GmicQt::FiltersPresenter Unknown filter Неизвестный фильтр Cannot find this fave's original filter Не удалось найти оригинал этого избранного фильтра GmicQt::FiltersView Remove fave Удалить из избранного Rename Fave Переименовать избранное Remove Fave Удалить из избранного Clone Fave Клонировать избранное Add Fave Добавить в избранное Remove All Удалить все %1 (%2 %3) %1 (%2 %3) Filters Фильтры Filter Фильтр Do you really want to remove the following fave? %1 Вы действительно хотите удалить этот фильтр из избранного? %1 GmicQt::FolderParameter Select a folder Выбрать папку GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Возвращённое фильтром изображение #%1 имеет %2 канал(а/ов) (должно быть не более 4) Image #%1 returned by filter has %2 channels (should be at most 4) Возвращённое фильтром изображение #%1 имеет %2 канал(а/ов) (должно быть не более 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Должен быть предоставлен путь к фильтру или команда фильтра. Custom command (%1) Пользовательская команда (%1) Cannot find filter matching path %1 Фильтр отсутствует на заданном пути %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Ошибка при анализе параметров для фильтра: %1 Не удалось восстановить значения по умолчанию. %2 Error parsing supplied command: %1 Ошибка анализа данной команды: %1 Supplied command (%1) does not match path (%2), (should be %3). Данная команда (%1) не совпадает с путём (%2), (должно быть %3). Filter execution failed, but with no error message. Применение фильтра не удалось, но без сообщения об ошибке. GmicQt::InOutPanel Input layers Вводные слои None Нет Active (default) Активный (по умолчанию) All Все Active and below Активный и ниже Active and above Активный и выше All visible Все видимые All invisible Все невидимые Output mode Режим вывода In place (default) Там же (по умолчанию) New layer(s) Новый слой(слои) New active layer(s) Новый активный слой(слои) New image Новое изображение Input / Output Ввод/вывод Input Ввод Output Вывод GmicQt::LanguageSelectionWidget System default (%1) Системный (%1) Translations are very likely to be incomplete. Переводы в большинстве случаев неполны. GmicQt::MainWindow Add fave Добавить в избранное Reset parameters to default values Сбросить параметры до значений по умолчанию Randomize parameters Copy G'MIC command to clipboard Скопируйте команду G'MIC в буфер обмена Rename fave Переименовать избранное Remove fave Удалить из избранного Expand/Collapse all Свернуть/развернуть всё G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Университет Нормандии (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Режим выбора фильтров для скрытия из списка Update filters Обновить фильтры Manage visible tags (Right-click on a fave or a filter to set/remove tags) Управление видимыми маркерами (ПКМ на избранном/неизбранном фильтре, чтобы добавить/удалить маркеры) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Обновление завершено Filter definitions have been updated. Определения фильтров обновлены. No download was needed. Загрузка не потребовалась. Plugin was called with a filter path with no matching filter: Path: %1 Плагин был вызван путём к фильтру без соответствующего фильтра: Путь: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Ошибка при анализе параметров для фильтра: %1 Не удалось восстановить значения по умолчанию. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 Плагин был вызван командой, которая не может быть распознана как фильтр: Команда: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Плагин был вызван командой, которая не может быть проанализирована: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Плагин был вызван командой, путь которой не совпадает с предоставленным: Путь: %1 Команда: %2 Команда, найденная по этому пути: %3 Filters update could not be achieved Не удалось обновить The update could not be achieved<br>because of the following errors:<br> Не удалось обновить<br/>по следующим причинам:<br/> Update error Ошибка обновления Error Ошибка Waiting for cancelled jobs... В ожидании отменённых заданий... Import faves Импорт избранных Do you want to import faves from file below?<br/>%1 Вы хотите импортировать избранные из следующего файла?<br/>%1 Don't ask again Больше не спрашивать Confirmation Подтвердить A gmic command is running.<br>Do you really want to close the plugin? Обрабатывается команда gmic.<br>Вы действительно хотите закрыть плагин? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Прогресс плагина G'MIC-Qt Abort Отмена [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... Фильтры обновляются... [Processing %1 | %2] [Обрабатывается %1 | %2] [Processing %1] [Обрабатывается %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression G'MIC-Qt Прогресс плагина %1 seconds %1 секунд [Processing %1 | %2] [Обрабатывается %1 | %2] [Processing %1] [Обрабатывается %1] GmicQt::SearchFieldWidget Search Поиск Search in filters list (%1) Поиск фильтра в списке (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Выбрать файл GmicQt::Updater Error downloading %1 (empty file?) Ошибка скачивания %1 (пустой файл?) Could not read/decompress %1 Ошибка чтения/распаковки %1 Error writing file %1 Ошибка записи файла %1 Error downloading %1<br/>Error %2: %3 Ошибка при загрузке %1<br/>Ошибка: %2: %3 Download timeout: %1 Тайм-аут загрузки: %1 GmicQt::VisibleTagSelector Show All Filters Отобразить все фильтры Show %1 Tags Отобразить %1(ые) маркеры GmicQt::ZoomLevelSelector Zoom in Приблизить Zoom out Отдалить Reset zoom Сбросить масштабирование Warning: Preview may be inaccurate (zoom factor has been modified) Внимание: предпросмотр может быть неточным (изменена настройка масштабирования) HeadlessProgressDialog Dialog Прогресс Cancel Отмена InOutPanel Input / Output Ввод/вывод ... ... Input layers Вводные слои Output mode Режим вывода JpegQualityDialog Dialog Dialog JPEG Quality Качество JPEG 0 0 100 100 Always use this quality for this execution of G'MIC-Qt Всегда использовать выбранное качество для G'MIC-Qt &Cancel &Отмена &Ok &Ok LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(Требуется перезапуск)</i> Translate filters (WIP) Перевод фильтров (в процессе) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Скачать определения фильтров из отдалённых ресурсов</p></body></html> Internet Интернет Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> <html><head/><body><p>Включение/выключение предпросмотра<br/>(Ctrl+P)<br/>(ПКМ на предпросмотре для мгновенного переключения)</p></body></html> Preview Предпросмотр &Close &Cancel &Отмена &Fullscreen &Полный экран &Apply &Применить &OK &Ok MultilineTextParameterWidget Form GMIC Update Обновить ProgressInfoWidget Form GMIC Abort Отмена TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel Отмена QObject Select an image to open... Выберите изображение... Error Ошибка Could not open file. Не удалось открыть файл. Default image Изображение по умолчанию Visible Видимость Available filters (%1) Доступные фильтры (%1) %1 Tag %1 маркер None Нет Red Красный Green Зелёный Blue Синий Cyan Голубой Magenta Пурпурный Yellow Жёлтый Could not install translator for file %1 Не удалось установить переводчик для файла %1 Could not load translation file %1 Не удалось загрузить файл перевода %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output G'MIC-Qt результат работы фильтра Close Закрыть Save as... Сохранить как... %1 file (*.%2 *.%3) Save image as... Сохранить изображение как... gmic_qt_standalone::ImageView Error Ошибка Could not write image file %1 Не удалось записать изображение в файл %1 ================================================ FILE: translations/sv.ts ================================================ DialogSettings Dialog parametrar Preview on the &left Pre&view on right side &Default Dar&k <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Omstart behövs)</I> Filter sources Internet updates Internetuppdateringar Update now Uppdatera nu Layout Layout Interface Gränssnitt Theme Tema <i>(Restart needed)</I> <i>(Omstart behövs)</I> Language Språk Always enable preview zooming Aktivera alltid förhandsgranskning Other Övrig Output messages Utdata meddelande &Use native color dialog &Använd inbyggd färgdialog Preview Förhandsvisning Timeout (seconds) Timeout (sekunder) Show institution logos Visa institutionens logotyper Notify when scheduled update fails Meddela när den schemalagda uppdateringen misslyckas &Ok &Ok FiltersView Form Form GmicQt::ColorParameter Select color Välj färg GmicQt::DialogSettings Settings Never Aldrig Daily ​Dagligen Weekly Varje vecka Every 2 weeks Varannan vecka Monthly Månadsvis At launch (debug) Vid start (felsök) Output messages Utdata meddelande Quiet (default) Tyst (standard) Verbose (console) Verbosa (konsol) Verbose (log file) Verbose (loggfil) Very verbose (console) Väldigt verbose (konsol) Very verbose (log file) Väldigt verbose (loggfil) Debug (console) Felsök (konsol) Debug (log file) Felsök (loggfil) Check to use Native/OS color dialog, uncheck to use Qt's Markera för att använda Native / OS-färgdialogen, avmarkera för att använda Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Välj en fil GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Välj ett filter</i> <i>No parameters</i> <i>Inga parametrar</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Ta bort fave Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 Vill du verkligen ta bort följande fave? %1 GmicQt::FolderParameter Select a folder Välj en mapp GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Mata in lager None Ingen Active (default) Aktiv (standard) All Allt Active and below Aktiv och nedan Active and above Aktiv och ovan All visible Alla synliga All invisible Alla osynliga Output mode Utdata-läge In place (default) På plats (standard) New layer(s) Nya lager New active layer(s) Ny aktivt lager New image New image Input / Output Indata / Utdata Input Output GmicQt::LanguageSelectionWidget System default (%1) Systemstandard (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Lägg till fave Reset parameters to default values Återställ parametrarna till standardvärden Randomize parameters Copy G'MIC command to clipboard Rename fave Byt namn på fave Remove fave Ta bort fave Expand/Collapse all Expandera/Dölj alla G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Valläge Update filters Uppdatera filter Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Uppdateringen slutförd Filter definitions have been updated. Filterdefinitioner har uppdaterats. No download was needed. Inga nerladdningar behövs. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved Filteruppdatering kunde inte utföras The update could not be achieved<br>because of the following errors:<br> Uppdateringen kunde inte uppnås<br/>på grund av följande fel:<br/> Update error Uppdateringsfel Error Fel Waiting for cancelled jobs... Väntar på avbrutet arbete... Import faves Importera faves Do you want to import faves from file below?<br/>%1 Vill du importera faves från filen nedan?<br/>%1 Don't ask again Fråga inte igen Confirmation Bekräfta A gmic command is running.<br>Do you really want to close the plugin? Ett g'mic-kommando körs.<br>Vill du verkligen stänga plugin-programmet? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Enter GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression G'MIC-Qt Plug-in progression Abort Avbryt [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... Uppdaterar filter ... [Processing %1 | %2] [Bearbetar %1 | %2] [Processing %1] [Bearbetar %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression G'MIC-Qt Plug-in progression %1 seconds %1 sekunder [Processing %1 | %2] [Bearbetar %1 | %2] [Processing %1] [Bearbetar %1] GmicQt::SearchFieldWidget Search Sök Search in filters list (%1) Sök i filterlistan (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Välj en fil GmicQt::Updater Error downloading %1 (empty file?) Fel vid nedladdning av %1 (tom fil?) Could not read/decompress %1 Kunde inte läsa/dekomprimera %1 Error writing file %1 Fel vid skrivning av fil %1 Error downloading %1<br/>Error %2: %3 Fel vid nedladdning %1<br/>Fel %2: %3 Download timeout: %1 Ladda ner timeout: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zooma in Zoom out Zoom ut Reset zoom Återställ zoomning Warning: Preview may be inaccurate (zoom factor has been modified) Varning: Förhandsgranskningen kan vara felaktig (zoomfaktorn har ändrats) HeadlessProgressDialog Dialog Dialog Cancel Avbryt InOutPanel Input / Output Indata / Utdata ... ... Input layers Mata in lager Output mode Utdata-läge JpegQualityDialog Dialog JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Avbryt &Ok &Ok LanguageSelectionWidget Form Form <i>(Restart needed)</i> <i>(Omstart behövs)</I> Translate filters (WIP) MainWindow MainWindow Huvudfönster Form Form <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Ladda ner filterdefinitioner från fjärrkällor</p></body></html> Internet Internet ... ... <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> ><html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(högerklicka på förhandsgranskningsbild för omedelbar byte)</p></body></html> Preview Preview &Settings... TextLabel Textetikett &Close &Cancel &Avbryt &Fullscreen &Fullskärm Preview type (Ctrl+Shift+P) &Apply &Tillämpa &OK &OK MultilineTextParameterWidget Form Form Update Updatera ProgressInfoWidget Form Form Abort Avbryt TextLabel Textetikett ProgressInfoWindow MainWindow Huvudfönster TextLabel Textetikett Cancel Avbryt QObject Visible Synlig Available filters (%1) Tillgängliga filter (%1) Select an image to open... Välj en bild som ska öppnas... Error Fel Could not open file. Kunde inte öppna filen. Default image Standardbild %1 Tag None Ingen Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form Form Official filters: File / URL Add new ... ... Macros: $HOME $VERSION ZoomLevelSelector Form Form gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Fel Could not write image file %1 ================================================ FILE: translations/uk.ts ================================================ DialogSettings Dialog Діалогове вікно Internet updates Оновлення через інтернет Update now Оновити Layout Розміщення Interface Preview on the &left Попередній перегляд &зліва Pre&view on right side Попередній перегляд &справа Theme Тема &Default &Стандартний Dar&k &Темна тема <i>(Restart needed)</I> <i>(Необхідне перезавантаження.)</I> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(Необхідне перезавантаження.)</I> Filter sources Other Output messages Повідомлення &Use native color dialog &Використовувати власні кольори діалогових вікон Preview Попередній перегляд Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok &Ok FiltersView Form Форма GmicQt::ColorParameter Select color Обрати колір GmicQt::DialogSettings Settings Never Ніколи Daily Щодня Weekly Щотижня Every 2 weeks Кожні 2 тижні Monthly Щомісяця At launch (debug) При запуску (налагодження) Output messages Повідомлення Quiet (default) Не виводити повідомлення (стандартний) Verbose (console) Докладний режим (консоль) Verbose (log file) Докладний режим (лог) Very verbose (console) Дуже докладний режим (консоль) Very verbose (log file) Дуже докладний режим (лог) Debug (console) Налагодження (консоль) Debug (log file) Налагодження (лог) Check to use Native/OS color dialog, uncheck to use Qt's Поставте прапорець, щоб використовувати кольори діалогових вікон Native/OS, або зніміть прапорець, щоб використовувати кольори Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file Виберіть файл GmicQt::FilterParametersWidget <i>Select a filter</i> <i>Виберіть фільтр</i> <i>No parameters</i> <i>Немає параметрів</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave Перейменувати уподобання Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder Виберіть папку GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers Вхідні шари None Немає Active (default) Активний (стандартний) All Все Active and below Активний і нижче Active and above Активний і вище All visible Всі видимі шари All invisible Всі невидимі шари Output mode Режим виводу In place (default) Замість (стандартний) New layer(s) Новий(і)) шар(и) New active layer(s) Новий(і) активний(і) шар(и) New image Нове зображення Input / Output Ввід / Вивід Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave Додати до вподобань Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard Rename fave Перейменувати уподобання Remove fave Перейменувати уподобання Expand/Collapse all Розгорнути / згорнути G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandie Université (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) Selection mode Update filters Оновити фільтри Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed Оновлення завершено Filter definitions have been updated. Визначення фільтрiв були оновлені. No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> Оновлення не може бути завершене<br>бо сталися наступні помилки:<br> Update error Помилка оновлення Error Помилка Waiting for cancelled jobs... Import faves Імпорт вподобань Do you want to import faves from file below?<br/>%1 Бажаєте імпортувати вподобання з наступного файлу нижче?<br/>%1 Don't ask again Не запитувати знов Confirmation Підтвердження A gmic command is running.<br>Do you really want to close the plugin? Команда gmic виконується.<br>Ви дійсно бажаєте закрити програму? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort Перервати [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [Обробка %1 | %2] [Processing %1] [Обробка %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 секунд [Processing %1 | %2] [Обробка %1 | %2] [Processing %1] [Обробка %1] GmicQt::SearchFieldWidget Search Пошук Search in filters list (%1) Пошук у списку фільтрів (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file Виберіть файл GmicQt::Updater Error downloading %1 (empty file?) Помилка під час завантаження файлу %1 (пустий файл ?) Could not read/decompress %1 Неможливо прочитати/розпакувати %1 Error writing file %1 Помилка під час записування файлу %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 Інтервал завантаження: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog Діалогове вікно Cancel Скасувати InOutPanel Input / Output Ввід / Вивід ... Input layers Вхідні шари Output mode Режим виводу JpegQualityDialog Dialog Діалогове вікно JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel &Скасувати &Ok &Ok LanguageSelectionWidget Form Форма <i>(Restart needed)</i> <i>(Необхідне перезавантаження.)</I> Translate filters (WIP) MainWindow Form Форма <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>Завантажити оновлення бази визначень фільтрів</p></body></html> Internet Інтернет Preview type (Ctrl+Shift+P) &Settings... TextLabel Текстовий Підпис ... MainWindow ГоловнеВікно <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Попередній перегляд &Close &Cancel &Скасувати &Fullscreen &Повноекранний режим &Apply &Застосовувати &OK &Ok MultilineTextParameterWidget Form Форма Update Оновлення ProgressInfoWidget Form Форма Abort Перервати TextLabel ТекстовийПідпис ProgressInfoWindow MainWindow ГоловнеВікно TextLabel ТекстовийПідпис Cancel Скасувати QObject Select an image to open... Вибрати зображення... Error Помилка Could not open file. Default image Visible Available filters (%1) Доступні фільтри (%1) %1 Tag None Немає Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Рамка SourcesWidget Form Форма Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form Форма gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error Помилка Could not write image file %1 ================================================ FILE: translations/zh.ts ================================================ DialogSettings Dialog 对话框 Internet updates 因特网更新 Update now 立即更新 Layout 布局 Interface Preview on the &left 在左边预览(&L) Pre&view on right side 在右边预览(&V) Theme 主题 &Default 默认(&D) Dar&k 暗色(&K) <i>(Restart needed)</I> <i>(必须重启)</I> Language Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(必须重启)</I> Filter sources Other Output messages 输出信息 &Use native color dialog 使用原生颜色对话框 Preview 预览 Timeout (seconds) Show institution logos Notify when scheduled update fails &Ok 确定(&O) FiltersView Form GMIC GmicQt::ColorParameter Select color 选择颜色 GmicQt::DialogSettings Settings Never 从不 Daily 每日 Weekly 每周 Every 2 weeks 每隔两周 Monthly 每月 At launch (debug) 启动时 (调试) Output messages 输出信息 Quiet (default) 静默 (默认) Verbose (console) 冗长 (控制台) Verbose (log file) 冗长 (日志文件) Very verbose (console) 很冗长 (控制台) Very verbose (log file) 很冗长 (日志文件) Debug (console) 调试 (控制台) Debug (log file) 调试 (日志文件) Check to use Native/OS color dialog, uncheck to use Qt's 选择以便使用原生/系统颜色对话框,取消选择以便使用 Qt Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file 选择一个文件 GmicQt::FilterParametersWidget <i>Select a filter</i> <i>选择一个滤镜</i> <i>No parameters</i> <i>无参数</i> Error parsing filter parameters GmicQt::FiltersPresenter Unknown filter Cannot find this fave's original filter GmicQt::FiltersView Remove fave 移除收藏 Rename Fave Remove Fave Clone Fave Add Fave Remove All %1 (%2 %3) Filters Filter Do you really want to remove the following fave? %1 GmicQt::FolderParameter Select a folder 选择一个文件夹 GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) Image #%1 returned by filter has %2 channels (should be at most 4) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. Custom command (%1) Cannot find filter matching path %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Error parsing supplied command: %1 Supplied command (%1) does not match path (%2), (should be %3). Filter execution failed, but with no error message. GmicQt::InOutPanel Input layers 输入层 None Active (default) 活动 (默认) All 全部 Active and below 活动及其下面 Active and above 活动及其上面 All visible 全部可见 All invisible 全部不可见 Output mode 输出模式 In place (default) 就地 (默认) New layer(s) 新建层 New active layer(s) 新建活动层 New image 新建图像 Input / Output 输入 / 输出 Input Output GmicQt::LanguageSelectionWidget System default (%1) Translations are very likely to be incomplete. GmicQt::MainWindow Add fave 添加收藏 Reset parameters to default values Randomize parameters Copy G'MIC command to clipboard 将G'MIC命令复制到剪贴板 Rename fave 重命名收藏 Remove fave 移除收藏 Expand/Collapse all 全部展开/折叠 G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>诺曼底大学 (https://www.unicaen.fr)<br/>法国国立卡昂高等工程师学院 (https://www.ensicaen.fr) Selection mode Update filters 更新滤镜 Manage visible tags (Right-click on a fave or a filter to set/remove tags) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed 更新完成 Filter definitions have been updated. 滤镜定义已更新。 No download was needed. Plugin was called with a filter path with no matching filter: Path: %1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 Filters update could not be achieved The update could not be achieved<br>because of the following errors:<br> 这次更新由于以下错误<br/>不能完成:<br/> Update error 更新错误 Error 错误 Waiting for cancelled jobs... Import faves 导入收藏 Do you want to import faves from file below?<br/>%1 你要从下面文件导入收藏吗?<br/>%1 Don't ask again 别再问 Confirmation 确认 A gmic command is running.<br>Do you really want to close the plugin? gmic 命令正在运行。<br>你真的想要关闭插件吗? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression Abort 中止 [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... [Processing %1 | %2] [进度 %1 | %2] [Processing %1] [进度 %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression %1 seconds %1 秒 [Processing %1 | %2] [进度 %1 | %2] [Processing %1] [进度 %1] GmicQt::SearchFieldWidget Search 搜索 Search in filters list (%1) 在滤镜列表中搜索 (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file 选择一个文件 GmicQt::Updater Error downloading %1 (empty file?) 下载错误 %1 (空文件?) Could not read/decompress %1 无法读取/解压缩 %1 Error writing file %1 写入文件错误 %1 Error downloading %1<br/>Error %2: %3 Download timeout: %1 下载超时: %1 GmicQt::VisibleTagSelector Show All Filters Show %1 Tags GmicQt::ZoomLevelSelector Zoom in Zoom out Reset zoom Warning: Preview may be inaccurate (zoom factor has been modified) HeadlessProgressDialog Dialog 对话框 Cancel 取消 InOutPanel Input / Output 输入 / 输出 ... Input layers 输入层 Output mode 输出模式 JpegQualityDialog Dialog 对话框 JPEG Quality 0 100 Always use this quality for this execution of G'MIC-Qt &Cancel 取消(&C) &Ok 确定(&O) LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(必须重启)</I> Translate filters (WIP) MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>从远端来源下载滤镜定义</p></body></html> Internet 因特网 Preview type (Ctrl+Shift+P) &Settings... TextLabel TextLabel ... MainWindow MainWindow <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview 预览 &Close &Cancel 取消(&C) &Fullscreen 全屏(&F) &Apply 应用(&A) &OK 确定(&O) MultilineTextParameterWidget Form GMIC Update 更新 ProgressInfoWidget Form GMIC Abort 中止 TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel 取消 QObject Select an image to open... 选择一幅图片打开... Error 错误 Could not open file. Default image Visible Available filters (%1) 可用滤镜 (%1) %1 Tag None Red Green Blue Cyan Magenta Yellow Could not install translator for file %1 Could not load translation file %1 List %1 cannot be merged considering these runs: %2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output Close Save as... %1 file (*.%2 *.%3) Save image as... gmic_qt_standalone::ImageView Error 错误 Could not write image file %1 ================================================ FILE: translations/zh_tw.ts ================================================ DialogSettings Dialog 對話框 Internet updates 網際網路更新 Update now 立即更新 Layout 佈局 Interface 介面 Preview on the &left 在左側預覽(&L) Pre&view on right side 在右側預覽(&V) Theme 主題 &Default 預設(&D) Dar&k 暗色(&K) <i>(Restart needed)</I> <i>(需要重啟程式)</I> Language 語言 Always enable preview zooming 一律啟用預覽縮放 <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> <html><head/><body><p><span style=" font-style:italic;">(警告:啟用時預覽或會不準確。)</span></p></body></html> Misc Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> <i>(需要重啟程式)</i> Filter sources Other 其他 Output messages 輸出訊息 &Use native color dialog 使用系統原生色彩對話框 Preview 預覽 Timeout (seconds) 逾時時限(秒) Show institution logos 顯示機構標誌 Notify when scheduled update fails 在定期更新失敗時通知 &Ok 確定(&O) FiltersView Form GMIC GmicQt::ColorParameter Select color 選取色彩 GmicQt::DialogSettings Settings Never 永不 Daily 每天 Weekly 每週 Every 2 weeks 每兩週 Monthly 每月 At launch (debug) 啟動時 (debug) Output messages 輸出訊息 Quiet (default) 安靜(預設) Verbose (console) 詳盡(終端機輸出) Verbose (log file) 詳盡(記錄檔) Very verbose (console) 超詳盡(終端機輸出) Very verbose (log file) 超詳盡(記錄檔) Debug (console) 偵錯(終端機輸出) Debug (log file) 偵錯(記錄檔) Check to use Native/OS color dialog, uncheck to use Qt's 核取以使用系統原生的色彩對話框,不核取則使用 Qt 提供的版本 Check to use Native/OS file dialog, uncheck to use Qt's GmicQt::FileParameter Select a file 選擇檔案 GmicQt::FilterParametersWidget <i>Select a filter</i> <i>選擇濾鏡</i> <i>No parameters</i> <i>沒有參數</i> Error parsing filter parameters 解析濾鏡參數時出現錯誤 GmicQt::FiltersPresenter Unknown filter 不明的濾鏡 Cannot find this fave's original filter 找不到這最愛濾鏡的來源濾鏡 GmicQt::FiltersView Remove fave 從最愛移除 Rename Fave 重新命名最愛 Remove Fave 從最愛移除 Clone Fave 再製最愛 Add Fave 加到最愛 Remove All 移除全部 %1 (%2 %3) %1 (%2 %3) Filters 濾鏡 Filter 濾鏡 Do you really want to remove the following fave? %1 你確認要移除以下最愛嗎? %1 GmicQt::FolderParameter Select a folder 選擇資料夾 GmicQt::GmicProcessor Image #%1 returned by filter has %2 channels (should be at most 4) 濾鏡傳回的影像 #%1 含有 %2 個通道(應為不多於 4 個) Image #%1 returned by filter has %2 channels (should be at most 4) 濾鏡傳回的影像 #%1 含有 %2 個通道 (應為不多於 4 個) GmicQt::HeadlessProcessor At least a filter path or a filter command must be provided. 必須提供濾鏡路徑或濾鏡命令。 Custom command (%1) 自訂命令 (%1) Cannot find filter matching path %1 找不到符合路徑「%1」的濾鏡 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 解析濾鏡參數定義時出現錯誤,濾鏡為: %1 不能取得預設參數。 %2 Error parsing supplied command: %1 解析所提供的命令時出現錯誤:%1 Supplied command (%1) does not match path (%2), (should be %3). 所提供的命令 (%1) 不符合路徑 (%2)(應為 %3)。 Filter execution failed, but with no error message. 濾鏡執行失敗,但沒有錯誤訊息。 GmicQt::InOutPanel Input layers 輸入圖層 None Active (default) 使用中(預設) All 全部 Active and below 使用中及其下方 Active and above 使用中及其上方 All visible 全部可見 All invisible 全部已隱藏 Output mode 輸出模式 In place (default) 原地(預設) New layer(s) 新增圖層 New active layer(s) 新增使用中圖層 New image 新增影像 Input / Output 輸入 / 輸出 Input 輸入 Output 輸出 GmicQt::LanguageSelectionWidget System default (%1) 系統預設(%1) Translations are very likely to be incomplete. 翻譯很可能是不完整的。 GmicQt::MainWindow Add fave 加到最愛 Reset parameters to default values 重設參數到預設值 Randomize parameters Copy G'MIC command to clipboard 複製 G'MIC 命令到剪貼簿 Rename fave 重新命名最愛 Remove fave 從最愛移除 Expand/Collapse all 全部展開或折疊 G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>Normandy University (https://www.unicaen.fr)<br/>Ensicaen (https://www.ensicaen.fr) G'MIC (https://gmic.eu)<br/>GREYC (https://www.greyc.fr)<br/>CNRS (https://www.cnrs.fr)<br/>諾曼第大學 (https://www.unicaen.fr)<br/>ENSICAEN (https://www.ensicaen.fr) Selection mode 選取模式 Update filters 更新濾鏡 Manage visible tags (Right-click on a fave or a filter to set/remove tags) 管理可見標籤 (右鍵點選最愛或濾鏡,以設定或移除標籤) Force &quit Full Forward Horizontal Forward Vertical Backward Horizontal Backward Vertical Duplicate Top Duplicate Left Duplicate Bottom Duplicate Right Duplicate Horizontal Duplicate Vertical Checkered Checkered Inverse Update completed 更新完成 Filter definitions have been updated. 濾鏡定義已更新。 No download was needed. 無需下載。 Plugin was called with a filter path with no matching filter: Path: %1 呼叫外掛程式時使用了沒有符合濾鏡的濾鏡路徑: 路徑為:%1 Error parsing filter parameters definition for filter: %1 Cannot retrieve default parameters. %2 解析濾鏡參數定義時出現錯誤,濾鏡為: %1 不能取得預設參數。 %2 Plugin was called with a command that cannot be recognized as a filter: Command: %1 呼叫外掛程式時使用了不能被辨認為濾鏡的命令: 命令:%1 [Elapsed time: %1] Plugin was called with a command that cannot be parsed: %1 呼叫外掛程式時使用了不能被解析的命令: %1 Plugin was called with a command that does not match the provided path: Path: %1 Command: %2 Command found for this path : %3 呼叫外掛程式時使用了不符合所提供路徑的命令: 路徑:%1 命令:%2 路徑中找到的命令:%3 Filters update could not be achieved 無法完成濾鏡更新 The update could not be achieved<br>because of the following errors:<br> 由於發生以下錯誤,<br>無法完成更新:<br> Update error 更新錯誤 Error 錯誤 Waiting for cancelled jobs... 正在等待取消工作…… Import faves 匯入最愛 Do you want to import faves from file below?<br/>%1 你要從以下檔案匯入最愛嗎?<br/>%1 Don't ask again 不再詢問 Confirmation 確認 A gmic command is running.<br>Do you really want to close the plugin? 一項 gmic 命令正在執行中。<br>你確定要關閉外掛程式嗎? GmicQt::MultilineTextParameterWidget Ctrl+Return Ctrl+Return GmicQt::ProgressInfoWidget G'MIC-Qt Plug-in progression G'MIC-Qt 外掛程式進度 Abort 中止 [Processing 88:00:00.888 | 888.9 GiB] [Processing 88:00:00.888] Updating filters... 正在更新濾鏡…… [Processing %1 | %2] [正在處理 %1 | %2] [Processing %1] [正在處理 %1] GmicQt::ProgressInfoWindow G'MIC-Qt Plug-in progression G'MIC-Qt 外掛程式進度 %1 seconds %1 秒 [Processing %1 | %2] [正在處理 %1 | %2] [Processing %1] [正在處理 %1] GmicQt::SearchFieldWidget Search 搜尋 Search in filters list (%1) 在濾鏡清單中搜尋 (%1) GmicQt::SourcesWidget Move source up Move source down Add local file (dialog) Reset filter sources Macros: $HOME %USERPROFILE% $VERSION Environment variables (e.g. %USERPROFILE% or %HOMEDIR%) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). Macros: $HOME $VERSION Remove source (Delete) Disable Enable without updates Enable with updates (recommended) Environment variables (e.g. $HOME or ${HOME} for your home directory) are substituted in sources. VERSION is also a predefined variable that stands for the G'MIC version number (currently %1). New source Select a file 選擇檔案 GmicQt::Updater Error downloading %1 (empty file?) 下載「%1」時出現錯誤(空白檔案?) Could not read/decompress %1 不能讀取或解壓縮「%1」 Error writing file %1 寫入檔案「%1」時出現錯誤 Error downloading %1<br/>Error %2: %3 下載「%1」時出現錯誤<br/>錯誤 %2:%3 Download timeout: %1 下載逾時:%1 GmicQt::VisibleTagSelector Show All Filters 顯示所有濾鏡 Show %1 Tags 顯示 %1 標籤 GmicQt::ZoomLevelSelector Zoom in 放大 Zoom out 縮小 Reset zoom 重設縮放比例 Warning: Preview may be inaccurate (zoom factor has been modified) 警告:預覽可能不準確(縮放比例已修改) HeadlessProgressDialog Dialog 對話框 Cancel 取消 InOutPanel Input / Output 輸入 / 輸出 ... Input layers 輸入圖層 Output mode 輸出模式 JpegQualityDialog Dialog 對話框 JPEG Quality JPEG 品質 0 0 100 100 Always use this quality for this execution of G'MIC-Qt 在這次執行 G'MIC-Qt 期間一律使用這個品質 &Cancel 取消(&C) &Ok 確定(&O) LanguageSelectionWidget Form GMIC <i>(Restart needed)</i> <i>(需要重啟程式)</i> Translate filters (WIP) 翻譯濾鏡(未完成) MainWindow MainWindow MainWindow Form GMIC <html><head/><body><p>Download filter definitions from remote sources</p></body></html> <html><head/><body><p>從遠端來源下載濾鏡定義</p></body></html> Internet 網際網路 ... <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> <html><head/><body><p>啟用或停用預覽<br/>(Ctrl+P)<br/>(右鍵點選預覽影像可即時切換)</p></body></html> Preview 預覽 &Settings... TextLabel TextLabel &Close &Cancel 取消(&C) &Fullscreen 全螢幕(&F) Preview type (Ctrl+Shift+P) &Apply 套用(&A) &OK 確定(&O) MultilineTextParameterWidget Form GMIC Update 更新 ProgressInfoWidget Form GMIC Abort 中止 TextLabel TextLabel ProgressInfoWindow MainWindow MainWindow TextLabel TextLabel Cancel 取消 QObject Visible 可見 Available filters (%1) 可用的濾鏡 (%1) Select an image to open... 開啟影像… Error 錯誤 Could not open file. 無法開啟檔案。 Default image 預設影像 %1 Tag %1 標籤 None Red 紅色 Green 錄色 Blue 藍色 Cyan 青色 Magenta 品紅色 Yellow 黃色 Could not install translator for file %1 無法為檔案「%1」裝上翻譯器 Could not load translation file %1 無法載入翻譯檔「%1」 List %1 cannot be merged considering these runs: %2 無法合併清單 %1,關聯的執行次:%2 %1 GiB %1 MiB %1 KiB %1 B SearchFieldWidget Frame Frame SourcesWidget Form GMIC Official filters: File / URL Add new ... Macros: $HOME $VERSION ZoomLevelSelector Form GMIC gmic_qt_standalone::ImageDialog G'MIC-Qt filter output G'MIC-Qt 濾鏡輸出 Close 關閉 Save as... 另存為… %1 file (*.%2 *.%3) Save image as... 儲存影像為… gmic_qt_standalone::ImageView Error 錯誤 Could not write image file %1 無法寫入影像檔「%1」 ================================================ FILE: translations.qrc ================================================ translations/cs.qm translations/de.qm translations/es.qm translations/fr.qm translations/id.qm translations/it.qm translations/nl.qm translations/zh.qm translations/zh_tw.qm translations/ru.qm translations/uk.qm translations/pl.qm translations/pt.qm translations/ja.qm translations/sv.qm ================================================ FILE: ui/SearchFieldWidget.ui ================================================ SearchFieldWidget 0 0 400 300 0 0 Frame 2 0 0 0 0 ================================================ FILE: ui/dialogsettings.ui ================================================ DialogSettings 0 0 553 496 Dialog 1 Interface Layout Show institution logos 0 0 :/images/preview_left.png Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter Preview on the &left 0 0 :/images/preview_right.png Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter Pre&view on right side Qt::Horizontal Theme &Default Dar&k 0 0 <i>(Restart needed)</I> Language Preview Timeout (seconds) Always enable preview zooming <html><head/><body><p><span style=" font-style:italic;">(Warning: preview may be inaccurate<br/>if checked.)</span></p></body></html> Misc &Use native color dialog Use native file dialog &Enable High-DPI support <i>(Restart needed)</i> Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing Filter sources Other Internet updates Update now Qt::Horizontal 227 20 Output messages Notify when scheduled update fails Qt::Vertical 20 122 Qt::Horizontal 40 20 &Ok GmicQt::ClickableLabel QLabel
ClickableLabel.h
GmicQt::LanguageSelectionWidget QWidget
Widgets/LanguageSelectionWidget.h
1
GmicQt::SourcesWidget QWidget
SourcesWidget.h
1
================================================ FILE: ui/filtersview.ui ================================================ FiltersView 0 0 428 458 Form 0 0 0 0 0 GmicQt::TreeView QTreeView
FilterSelector/FiltersView/TreeView.h
================================================ FILE: ui/headlessprogressdialog.ui ================================================ HeadlessProgressDialog 0 0 432 218 Dialog QFrame::StyledPanel QFrame::Raised 24 Qt::Horizontal 40 20 Cancel Qt::Horizontal 40 20 ================================================ FILE: ui/inoutpanel.ui ================================================ InOutPanel 0 0 463 290 0 0 GroupBox 0 0 0 0 Input / Output ... 0 0 QFrame::NoFrame QAbstractScrollArea::AdjustIgnored true Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop 0 0 463 142 0 0 Input layers 1 0 0 0 Output mode 1 0 ================================================ FILE: ui/languageselectionwidget.ui ================================================ LanguageSelectionWidget 0 0 228 53 Form 0 0 0 0 0 <i>(Restart needed)</i> Qt::AutoText Translate filters (WIP) ================================================ FILE: ui/mainwindow.ui ================================================ MainWindow 0 0 1143 639 MainWindow Form Qt::Orientation::Horizontal 0 0 QFrame::Shape::NoFrame QFrame::Shadow::Raised 0 0 Qt::FocusPolicy::StrongFocus 0 0 0 0 0 0 0 0 Qt::Orientation::Horizontal 40 20 :/icons/color-wheel.png:/icons/color-wheel.png 0 0 0 0 0 0 <html><head/><body><p>Download filter definitions from remote sources</p></body></html> Internet 0 0 QFrame::Shape::NoFrame QFrame::Shadow::Raised Qt::Orientation::Vertical 6 0 150 0 0 0 0 0 0 ... ... ... 0 0 QFrame::Shape::NoFrame Qt::ScrollBarPolicy::ScrollBarAsNeeded QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents true 0 0 227 397 0 0 Qt::FocusPolicy::NoFocus Qt::Orientation::Vertical QSizePolicy::Policy::Fixed 20 9 Qt::Orientation::Horizontal 0 0 false 0 0 0 0 QFrame::Shape::StyledPanel QFrame::Shadow::Raised 2 2 2 2 2 Qt::FocusPolicy::StrongFocus <html><head/><body><p>Enable/disable preview<br/>(Ctrl+P)<br/>(right click on preview image for instant swapping)</p></body></html> Preview Preview type (Ctrl+Shift+P) Qt::Orientation::Horizontal 40 20 40 0 0 0 0 0 0 0 0 0 :/resources/gimp_logos.png Qt::AlignmentFlag::AlignCenter 0 0 &Settings... 0 0 TextLabel TextLabel 0 0 &Fullscreen 0 0 &Close 0 0 &Cancel 0 0 &Apply 0 0 &OK GmicQt::ProgressInfoWidget QWidget
Widgets/ProgressInfoWidget.h
1
GmicQt::FilterParametersWidget QWidget
FilterParameters/FilterParametersWidget.h
1
GmicQt::PreviewWidget QWidget
Widgets/PreviewWidget.h
1
GmicQt::SearchFieldWidget QWidget
Widgets/SearchFieldWidget.h
1
GmicQt::ZoomLevelSelector QWidget
Widgets/ZoomLevelSelector.h
1
GmicQt::FiltersView QWidget
FilterSelector/FiltersView/FiltersView.h
1
GmicQt::InOutPanel QWidget
Widgets/InOutPanel.h
1
previewWidget cbPreview pbCancel pbApply pbOk
================================================ FILE: ui/multilinetextparameterwidget.ui ================================================ MultilineTextParameterWidget 0 0 403 210 Form Update ================================================ FILE: ui/progressinfowidget.ui ================================================ ProgressInfoWidget 0 0 296 25 Form 0 0 0 0 24 false 0 0 Abort TextLabel ================================================ FILE: ui/progressinfowindow.ui ================================================ ProgressInfoWindow 0 0 438 166 MainWindow QFrame::StyledPanel QFrame::Raised TextLabel Qt::AlignCenter 24 TextLabel Qt::Horizontal 40 20 Cancel Qt::Horizontal 40 20 ================================================ FILE: ui/sourceswidget.ui ================================================ SourcesWidget 0 0 694 524 Form File / URL Add new ... ... ... Qt::Vertical QSizePolicy::Fixed 10 35 ... ... Qt::Vertical 20 40 Macros: $HOME $VERSION Qt::Horizontal Official filters: Qt::Horizontal 40 20 ================================================ FILE: ui/zoomlevelselector.ui ================================================ ZoomLevelSelector 0 0 170 39 0 0 Form 0 0 0 0 0 :/images/warning.png 0 0 QComboBox::AdjustToContents 0 0 0 0 ================================================ FILE: wip_translations.qrc ================================================ translations/filters/fr.qm translations/filters/zh.qm