|
|
@@ -1,6 +1,7 @@
|
|
|
import React, { useEffect, useCallback, useRef } from 'react';
|
|
|
import { Layout, Button, Typography, Select, message, Spin, Alert } from 'antd';
|
|
|
import { ArrowLeftOutlined } from '@ant-design/icons';
|
|
|
+import { useIntl } from 'react-intl';
|
|
|
import { useDispatch } from 'react-redux';
|
|
|
import { useAppSelector } from '@/states/store';
|
|
|
import { useImageEnhancementSDK } from '@/hooks/useImageEnhancementSDK';
|
|
|
@@ -43,6 +44,7 @@ const { Option } = Select;
|
|
|
* 三级面板,用于调整图像处理参数
|
|
|
*/
|
|
|
const SliderAdjustmentPanel = () => {
|
|
|
+ const intl = useIntl();
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
|
// 从 Redux 获取状态
|
|
|
@@ -308,7 +310,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
onClick={handleReturn}
|
|
|
/>
|
|
|
<Title level={5} style={{ margin: 0, lineHeight: '48px' }}>
|
|
|
- 滑动参数调节
|
|
|
+ {intl.formatMessage({ id: 'sliderAdjustmentPanel.title' })}
|
|
|
</Title>
|
|
|
</Header>
|
|
|
|
|
|
@@ -367,14 +369,14 @@ const SliderAdjustmentPanel = () => {
|
|
|
zIndex: 1000,
|
|
|
}}
|
|
|
>
|
|
|
- <Spin size="large" tip="加载参数中..." />
|
|
|
+ <Spin size="large" tip={intl.formatMessage({ id: 'sliderAdjustmentPanel.loadingParams' })} />
|
|
|
</div>
|
|
|
)}
|
|
|
|
|
|
<div style={{ opacity: isLoading ? 0.5 : 1 }}>
|
|
|
{/* 增益滑块 */}
|
|
|
<ParameterSlider
|
|
|
- label="增益"
|
|
|
+ label={intl.formatMessage({ id: 'sliderAdjustmentPanel.gain' })}
|
|
|
value={parameters.contrast}
|
|
|
min={PARAMETER_RANGES.gain.min}
|
|
|
max={PARAMETER_RANGES.gain.max}
|
|
|
@@ -386,7 +388,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
|
|
|
{/* 细节滑块 */}
|
|
|
<ParameterSlider
|
|
|
- label="细节"
|
|
|
+ label={intl.formatMessage({ id: 'sliderAdjustmentPanel.detail' })}
|
|
|
value={parameters.detail}
|
|
|
min={PARAMETER_RANGES.detail.min}
|
|
|
max={PARAMETER_RANGES.detail.max}
|
|
|
@@ -398,7 +400,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
|
|
|
{/* 动态范围滑块 */}
|
|
|
<ParameterSlider
|
|
|
- label="动态范围"
|
|
|
+ label={intl.formatMessage({ id: 'sliderAdjustmentPanel.dynamicRange' })}
|
|
|
value={parameters.latitude}
|
|
|
min={PARAMETER_RANGES.latitude.min}
|
|
|
max={PARAMETER_RANGES.latitude.max}
|
|
|
@@ -410,7 +412,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
|
|
|
{/* 噪声模式滑块 */}
|
|
|
<ParameterSlider
|
|
|
- label="噪声模式"
|
|
|
+ label={intl.formatMessage({ id: 'sliderAdjustmentPanel.noiseMode' })}
|
|
|
value={parameters.noise}
|
|
|
min={PARAMETER_RANGES.noise.min}
|
|
|
max={PARAMETER_RANGES.noise.max}
|
|
|
@@ -422,7 +424,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
|
|
|
{/* 对比度滑块(前端维护) */}
|
|
|
<ParameterSlider
|
|
|
- label="对比度"
|
|
|
+ label={intl.formatMessage({ id: 'sliderAdjustmentPanel.contrast' })}
|
|
|
value={parameters.brightness}
|
|
|
min={PARAMETER_RANGES.brightness.min}
|
|
|
max={PARAMETER_RANGES.brightness.max}
|
|
|
@@ -434,7 +436,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
|
|
|
{/* 亮度滑块(前端维护) */}
|
|
|
<ParameterSlider
|
|
|
- label="亮度"
|
|
|
+ label={intl.formatMessage({ id: 'sliderAdjustmentPanel.brightness' })}
|
|
|
value={parameters.sharpness}
|
|
|
min={PARAMETER_RANGES.sharpness.min}
|
|
|
max={PARAMETER_RANGES.sharpness.max}
|
|
|
@@ -447,7 +449,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
{/* 算法选择 */}
|
|
|
<div style={{ marginBottom: '16px' }}>
|
|
|
<Typography.Text strong style={{ display: 'block', marginBottom: '8px' }}>
|
|
|
- 算法
|
|
|
+ {intl.formatMessage({ id: 'sliderAdjustmentPanel.algorithm' })}
|
|
|
</Typography.Text>
|
|
|
<Select
|
|
|
value={selectedAlgorithm}
|
|
|
@@ -466,7 +468,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
{/* LUT 选择 */}
|
|
|
<div style={{ marginBottom: '16px' }}>
|
|
|
<Typography.Text strong style={{ display: 'block', marginBottom: '8px' }}>
|
|
|
- LUT
|
|
|
+ {intl.formatMessage({ id: 'sliderAdjustmentPanel.lut' })}
|
|
|
</Typography.Text>
|
|
|
<Select
|
|
|
value={selectedLUT}
|
|
|
@@ -485,7 +487,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
{/* 风格选择 */}
|
|
|
<div style={{ marginBottom: '16px' }}>
|
|
|
<Typography.Text strong style={{ display: 'block', marginBottom: '8px' }}>
|
|
|
- 风格
|
|
|
+ {intl.formatMessage({ id: 'sliderAdjustmentPanel.style' })}
|
|
|
</Typography.Text>
|
|
|
<Select
|
|
|
value={selectedStyle}
|
|
|
@@ -511,7 +513,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
fontSize: '14px',
|
|
|
}}
|
|
|
>
|
|
|
- 重置参数
|
|
|
+ {intl.formatMessage({ id: 'sliderAdjustmentPanel.resetParams' })}
|
|
|
</Button>
|
|
|
<Button
|
|
|
type="primary"
|
|
|
@@ -526,7 +528,7 @@ const SliderAdjustmentPanel = () => {
|
|
|
borderColor: '#13c2c2',
|
|
|
}}
|
|
|
>
|
|
|
- 保存参数
|
|
|
+ {intl.formatMessage({ id: 'sliderAdjustmentPanel.saveParams' })}
|
|
|
</Button>
|
|
|
</div>
|
|
|
</div>
|