LightTool.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #include "LightTool.h"
  2. #include <QIntValidator>
  3. lighttool::lighttool(QWidget* parent) : ToolInterface(parent), ui(new Ui::lighttool)
  4. {
  5. ui->setupUi(this);
  6. ui->lineEdit_Mult->setText("0.1");
  7. ui->lineEdit_Add->setText("0");
  8. ui->lineEdit_Mult->setValidator(new QIntValidator(0, 16777215, this));
  9. }
  10. lighttool::~lighttool()
  11. {
  12. delete ui;
  13. }
  14. bool lighttool::Serialized(QDataStream& ar, bool bIsOut)
  15. {
  16. int paranum;//参数数量
  17. if (bIsOut)//保存参数流程
  18. {
  19. paranum = 2;
  20. ar << paranum;//先保存参数数量
  21. ar << (int)1 << m_fMult;
  22. ar << (int)2 << m_nAdd;
  23. }
  24. else//加载参数流程,参数加载顺序一定要跟保存顺序一致
  25. {
  26. int nCurrentIndex = 0;
  27. int para;
  28. ar >> paranum;//读取参数数量
  29. for (int i = 0; i < paranum; i++)
  30. {
  31. ar >> para;
  32. switch (para)
  33. {
  34. case 1: ar >> m_fMult; break;
  35. case 2: ar >> m_nAdd; break;
  36. default:
  37. {
  38. qWarning() << "Serialized(In) Error";
  39. return false;
  40. }
  41. break;
  42. }
  43. }
  44. {
  45. ui->lineEdit_Mult->setText(QString::number(m_fMult, 'f', 1));
  46. ui->lineEdit_Add->setText(QString::number(m_nAdd));
  47. emit updateParameter(ShowParameter());
  48. }
  49. }
  50. return true;
  51. }
  52. QString lighttool::ShowParameter()
  53. {
  54. QString str;
  55. m_fMult = ui->lineEdit_Mult->text().toDouble();
  56. m_nAdd = ui->lineEdit_Add->text().toInt();
  57. str += QString::number(m_fMult, 'f', 1);
  58. str += ",";
  59. str += QString::number(m_nAdd);
  60. return str;
  61. }
  62. int lighttool::Execute()
  63. {
  64. int result = 1;
  65. m_fMult = ui->lineEdit_Mult->text().toDouble();
  66. m_nAdd = ui->lineEdit_Add->text().toInt();
  67. try
  68. {
  69. ScaleImage (m_InImage, &m_OutImage, m_fMult, m_nAdd);
  70. }
  71. catch(...)
  72. {
  73. }
  74. return result;
  75. }
  76. void lighttool::on_BTN_Add1_clicked()
  77. {
  78. ui->lineEdit_Mult->setText(QString::number(ui->lineEdit_Mult->text().toDouble() + 0.1, 'f', 1));
  79. emit updateParameter(ShowParameter());
  80. }
  81. void lighttool::on_BTN_Sub1_clicked()
  82. {
  83. if(ui->lineEdit_Mult->text().toDouble() > 0)
  84. {
  85. ui->lineEdit_Mult->setText(QString::number(ui->lineEdit_Mult->text().toDouble() - 0.1, 'f', 1));
  86. emit updateParameter(ShowParameter());
  87. }
  88. }
  89. void lighttool::on_BTN_Add2_clicked()
  90. {
  91. ui->lineEdit_Add->setText(QString::number(ui->lineEdit_Add->text().toInt() + 1));
  92. emit updateParameter(ShowParameter());
  93. }
  94. void lighttool::on_BTN_Sub2_clicked()
  95. {
  96. ui->lineEdit_Add->setText(QString::number(ui->lineEdit_Add->text().toInt() - 1));
  97. emit updateParameter(ShowParameter());
  98. }
  99. void lighttool::on_lineEdit_Mult_editingFinished()
  100. {
  101. emit updateParameter(ShowParameter());
  102. }
  103. void lighttool::on_lineEdit_Add_editingFinished()
  104. {
  105. emit updateParameter(ShowParameter());
  106. }