MirrorTool.cpp 1.9 KB

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