This commit is contained in:
luoliangyi 2023-08-07 16:50:45 +08:00
parent 50ac4f6cdf
commit d03c04a10b
3 changed files with 83 additions and 83 deletions

View File

@ -1371,72 +1371,68 @@ void hg_settingdialog::slot_cutButtonClicked()
void hg_settingdialog::slot_gammaButtonClicked() void hg_settingdialog::slot_gammaButtonClicked()
{ {
setPicClrTool dlg(this); int colorMode = 0; // 0-彩色, 1-灰度
int colorMode; // 0-彩色, 1-灰度
if (m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_256JHD if (m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_256JHD
|| m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_HB) || m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_HB)
{ {
colorMode = 1; colorMode = 1;
QList<QPoint> keyTable;
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GRAY]; ++i)
{
uchar x = m_gammaData.pt_gray[i];
uchar y = m_gammaData.table[256 * GAMMA_INDEX_GRAY + x];
keyTable.append(QPoint(x, y));
}
if (!keyTable.empty())
{
dlg.setGrayKeyTable(keyTable);
}
} }
else
setPicClrTool dlg(colorMode, this);
QList<QPoint> grayKeyTable;
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GRAY]; ++i)
{ {
colorMode = 0; uchar x = m_gammaData.pt_gray[i];
uchar y = m_gammaData.table[256 * GAMMA_INDEX_GRAY + x];
grayKeyTable.append(QPoint(x, y));
}
QList<QPoint> keyTable; if (!grayKeyTable.empty())
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_COLOR]; ++i) {
{ dlg.setGrayKeyTable(grayKeyTable);
uchar x = m_gammaData.pt_color[i]; }
uchar y = m_gammaData.table[256 * GAMMA_INDEX_COLOR + x];
keyTable.append(QPoint(x, y));
}
QList<QPoint> rKeyTable; QList<QPoint> colorKeyTable;
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_RED]; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_COLOR]; ++i)
{ {
uchar x = m_gammaData.pt_red[i]; uchar x = m_gammaData.pt_color[i];
uchar y = m_gammaData.table[256 * GAMMA_INDEX_RED + x]; uchar y = m_gammaData.table[256 * GAMMA_INDEX_COLOR + x];
rKeyTable.append(QPoint(x, y)); colorKeyTable.append(QPoint(x, y));
} }
QList<QPoint> gKeyTable; QList<QPoint> rKeyTable;
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GREEN]; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_RED]; ++i)
{ {
uchar x = m_gammaData.pt_green[i]; uchar x = m_gammaData.pt_red[i];
uchar y = m_gammaData.table[256 * GAMMA_INDEX_GREEN + x]; uchar y = m_gammaData.table[256 * GAMMA_INDEX_RED + x];
gKeyTable.append(QPoint(x, y)); rKeyTable.append(QPoint(x, y));
} }
QList<QPoint> bKeyTable; QList<QPoint> gKeyTable;
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_BLUE]; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GREEN]; ++i)
{ {
uchar x = m_gammaData.pt_blue[i]; uchar x = m_gammaData.pt_green[i];
uchar y = m_gammaData.table[256 * GAMMA_INDEX_BLUE + x]; uchar y = m_gammaData.table[256 * GAMMA_INDEX_GREEN + x];
bKeyTable.append(QPoint(x, y)); gKeyTable.append(QPoint(x, y));
} }
QVector<QList<QPoint>> keyTableList; QList<QPoint> bKeyTable;
if (!keyTable.empty() && !rKeyTable.empty() && !gKeyTable.empty() && !bKeyTable.empty()) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_BLUE]; ++i)
{ {
keyTableList.append(keyTable); uchar x = m_gammaData.pt_blue[i];
keyTableList.append(rKeyTable); uchar y = m_gammaData.table[256 * GAMMA_INDEX_BLUE + x];
keyTableList.append(gKeyTable); bKeyTable.append(QPoint(x, y));
keyTableList.append(bKeyTable); }
dlg.setRGBKeyTable(keyTableList);
} QVector<QList<QPoint>> keyTableList;
if (!colorKeyTable.empty() && !rKeyTable.empty() && !gKeyTable.empty() && !bKeyTable.empty())
{
keyTableList.append(colorKeyTable);
keyTableList.append(rKeyTable);
keyTableList.append(gKeyTable);
keyTableList.append(bKeyTable);
dlg.setRGBKeyTable(keyTableList);
} }
int rgbTypeIndex = 0; int rgbTypeIndex = 0;
@ -1445,8 +1441,6 @@ void hg_settingdialog::slot_gammaButtonClicked()
colorTypeIndex = (m_gammaData.app_data & 0xF0) >> 4; colorTypeIndex = (m_gammaData.app_data & 0xF0) >> 4;
dlg.setRgbAndColorType(rgbTypeIndex, colorTypeIndex); dlg.setRgbAndColorType(rgbTypeIndex, colorTypeIndex);
dlg.setColorMode(colorMode);
if (dlg.exec()) if (dlg.exec())
{ {
memset(&m_gammaData, 0, sizeof(m_gammaData)); memset(&m_gammaData, 0, sizeof(m_gammaData));

View File

@ -4,9 +4,10 @@
#include <QDebug> #include <QDebug>
#include <QVariant> #include <QVariant>
setPicClrTool::setPicClrTool(QWidget *parent) : setPicClrTool::setPicClrTool(int colorMode, QWidget *parent)
QDialog(parent), : QDialog(parent)
ui(new Ui::setPicClrTool) , ui(new Ui::setPicClrTool)
, m_colorMode(colorMode)
{ {
ui->setupUi(this); ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
@ -19,6 +20,21 @@ setPicClrTool::setPicClrTool(QWidget *parent) :
connect(ui->widget,SIGNAL(mouseCoordSig(QPoint)),this,SLOT(mouseCoordSlot(QPoint))); connect(ui->widget,SIGNAL(mouseCoordSig(QPoint)),this,SLOT(mouseCoordSlot(QPoint)));
connect(ui->widget,SIGNAL(dragPointChecked(bool)),this,SLOT(lineEditEnable(bool))); connect(ui->widget,SIGNAL(dragPointChecked(bool)),this,SLOT(lineEditEnable(bool)));
connect(ui->widget,SIGNAL(lineChangeSig()),this,SLOT(lineChangeSlot())); connect(ui->widget,SIGNAL(lineChangeSig()),this,SLOT(lineChangeSlot()));
QVariant v(6);
if(colorMode == 0)
{
ui->colorSetCmb->setItemData(1,v,Qt::UserRole - 1);
}
else
{
ui->comboBox->setItemData(2,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(0,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(2,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(3,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(4,v,Qt::UserRole - 1);
ui->colorSetCmb->setCurrentIndex(1);
}
} }
setPicClrTool::~setPicClrTool() setPicClrTool::~setPicClrTool()
@ -56,24 +72,6 @@ void setPicClrTool::getRGBTable(uchar *table, size_t length)
} }
} }
void setPicClrTool::setColorMode(int colorMode)
{
QVariant v(6);
if(colorMode == 0)
{
ui->colorSetCmb->setItemData(1,v,Qt::UserRole - 1);
}
else
{
ui->comboBox->setItemData(2,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(0,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(2,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(3,v,Qt::UserRole - 1);
ui->colorSetCmb->setItemData(4,v,Qt::UserRole - 1);
ui->colorSetCmb->setCurrentIndex(1);
}
}
QVector<QList<QPoint> > setPicClrTool::getRGBKeyTable() QVector<QList<QPoint> > setPicClrTool::getRGBKeyTable()
{ {
QVector<QList<QPoint>> plv; QVector<QList<QPoint>> plv;
@ -113,8 +111,17 @@ QVector<int> setPicClrTool::getRgbAndColorType()
void setPicClrTool::setRgbAndColorType(int rgbTypeIndex, int colorTypeIndex) void setPicClrTool::setRgbAndColorType(int rgbTypeIndex, int colorTypeIndex)
{ {
ui->comboBox->setCurrentIndex(rgbTypeIndex); if (0 == m_colorMode)
ui->colorSetCmb->setCurrentIndex(colorTypeIndex); {
ui->comboBox->setCurrentIndex(rgbTypeIndex);
if (1 != colorTypeIndex)
ui->colorSetCmb->setCurrentIndex(colorTypeIndex);
}
else
{
if (2 != rgbTypeIndex)
ui->comboBox->setCurrentIndex(rgbTypeIndex);
}
} }
QVector<int> setPicClrTool::getRgbALLPoint() QVector<int> setPicClrTool::getRgbALLPoint()

View File

@ -13,14 +13,12 @@ class setPicClrTool : public QDialog
Q_OBJECT Q_OBJECT
public: public:
explicit setPicClrTool(QWidget *parent = nullptr); explicit setPicClrTool(int colorMode, QWidget *parent = nullptr);
~setPicClrTool(); ~setPicClrTool();
void getGrayTable(uchar* table, size_t length = 256); void getGrayTable(uchar* table, size_t length = 256);
void getRGBTable(uchar* table, size_t length = 1024); void getRGBTable(uchar* table, size_t length = 1024);
void setColorMode(int colorMode);
QVector<QList<QPoint>> getRGBKeyTable(); QVector<QList<QPoint>> getRGBKeyTable();
void setRGBKeyTable(QVector<QList<QPoint>>& plv); void setRGBKeyTable(QVector<QList<QPoint>>& plv);
QList<QPoint> getGrayKeyTable(); QList<QPoint> getGrayKeyTable();
@ -68,6 +66,7 @@ private slots:
private: private:
Ui::setPicClrTool *ui; Ui::setPicClrTool *ui;
int m_colorMode;
QList<QPoint> linePoint; QList<QPoint> linePoint;
QList<QPoint> greenLine; QList<QPoint> greenLine;
QList<QPoint> redLine; QList<QPoint> redLine;