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,37 +1371,34 @@ void hg_settingdialog::slot_cutButtonClicked()
void hg_settingdialog::slot_gammaButtonClicked()
{
setPicClrTool dlg(this);
int colorMode; // 0-彩色, 1-灰度
int colorMode = 0; // 0-彩色, 1-灰度
if (m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_256JHD
|| m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_HB)
{
colorMode = 1;
}
QList<QPoint> keyTable;
setPicClrTool dlg(colorMode, this);
QList<QPoint> grayKeyTable;
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));
grayKeyTable.append(QPoint(x, y));
}
if (!keyTable.empty())
if (!grayKeyTable.empty())
{
dlg.setGrayKeyTable(keyTable);
dlg.setGrayKeyTable(grayKeyTable);
}
}
else
{
colorMode = 0;
QList<QPoint> keyTable;
QList<QPoint> colorKeyTable;
for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_COLOR]; ++i)
{
uchar x = m_gammaData.pt_color[i];
uchar y = m_gammaData.table[256 * GAMMA_INDEX_COLOR + x];
keyTable.append(QPoint(x, y));
colorKeyTable.append(QPoint(x, y));
}
QList<QPoint> rKeyTable;
@ -1429,15 +1426,14 @@ void hg_settingdialog::slot_gammaButtonClicked()
}
QVector<QList<QPoint>> keyTableList;
if (!keyTable.empty() && !rKeyTable.empty() && !gKeyTable.empty() && !bKeyTable.empty())
if (!colorKeyTable.empty() && !rKeyTable.empty() && !gKeyTable.empty() && !bKeyTable.empty())
{
keyTableList.append(keyTable);
keyTableList.append(colorKeyTable);
keyTableList.append(rKeyTable);
keyTableList.append(gKeyTable);
keyTableList.append(bKeyTable);
dlg.setRGBKeyTable(keyTableList);
}
}
int rgbTypeIndex = 0;
rgbTypeIndex = m_gammaData.app_data & 0x0F;
@ -1445,8 +1441,6 @@ void hg_settingdialog::slot_gammaButtonClicked()
colorTypeIndex = (m_gammaData.app_data & 0xF0) >> 4;
dlg.setRgbAndColorType(rgbTypeIndex, colorTypeIndex);
dlg.setColorMode(colorMode);
if (dlg.exec())
{
memset(&m_gammaData, 0, sizeof(m_gammaData));

View File

@ -4,9 +4,10 @@
#include <QDebug>
#include <QVariant>
setPicClrTool::setPicClrTool(QWidget *parent) :
QDialog(parent),
ui(new Ui::setPicClrTool)
setPicClrTool::setPicClrTool(int colorMode, QWidget *parent)
: QDialog(parent)
, ui(new Ui::setPicClrTool)
, m_colorMode(colorMode)
{
ui->setupUi(this);
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(dragPointChecked(bool)),this,SLOT(lineEditEnable(bool)));
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()
@ -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>> plv;
@ -112,10 +110,19 @@ QVector<int> setPicClrTool::getRgbAndColorType()
}
void setPicClrTool::setRgbAndColorType(int rgbTypeIndex, int colorTypeIndex)
{
if (0 == m_colorMode)
{
ui->comboBox->setCurrentIndex(rgbTypeIndex);
if (1 != colorTypeIndex)
ui->colorSetCmb->setCurrentIndex(colorTypeIndex);
}
else
{
if (2 != rgbTypeIndex)
ui->comboBox->setCurrentIndex(rgbTypeIndex);
}
}
QVector<int> setPicClrTool::getRgbALLPoint()
{

View File

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