ImageProvider.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "ImageProvider.h"
  2. #include <QDebug>
  3. ImageProvider::ImageProvider()
  4. : QQuickImageProvider(QQuickImageProvider::Image) {}
  5. QImage ImageProvider::requestImage(const QString &id, QSize *size,
  6. const QSize &requestedSize) {
  7. return this->img;
  8. }
  9. QPixmap ImageProvider::requestPixmap(const QString &id, QSize *size,
  10. const QSize &requestedSize) {
  11. return QPixmap::fromImage(this->img);
  12. }
  13. ShowImage::ShowImage(QObject *parent) : QObject(parent) {
  14. m_pImgProvider = new ImageProvider();
  15. }
  16. void ShowImage::sendImage(QImage sendimage) {
  17. m_pImgProvider->img = sendimage;
  18. emit callQmlRefeshImg();
  19. }
  20. void ShowImage::sendBackImage(QImage sendimage) {
  21. m_pImgProvider->img = sendimage;
  22. emit callQmlRefeshBackImg();
  23. }
  24. void ShowImage::sendLeftImage(QImage sendimage) {
  25. m_pImgProvider->img = sendimage;
  26. emit callQmlRefeshLeftImg();
  27. }
  28. void ShowImage::sendRightImage(QImage sendimage) {
  29. m_pImgProvider->img = sendimage;
  30. emit callQmlRefeshRightImg();
  31. }
  32. void ShowImage::sendPanelImage(QImage sendimage) {
  33. m_pImgProvider->img = sendimage;
  34. emit callQmlRefeshPanelImg();
  35. }
  36. void ShowImage::OnRender(std::unique_ptr<uint8_t> &pBuffer, int32_t width,
  37. int32_t height) {
  38. if (campos == RenderPosition::FRONT) {
  39. m_image = QImage(pBuffer.get(), 1280, 720, QImage::Format_RGB32);
  40. this->sendImage(m_image);
  41. }
  42. if (campos == RenderPosition::BACK) {
  43. m_image = QImage(pBuffer.get(), 1280, 720, QImage::Format_RGB32);
  44. this->sendBackImage(m_image);
  45. }
  46. if (campos == RenderPosition::LEFT) {
  47. m_image = QImage(pBuffer.get(), 720, 1280, QImage::Format_RGB32);
  48. this->sendLeftImage(m_image);
  49. }
  50. if (campos == RenderPosition::RIGHT) {
  51. m_image = QImage(pBuffer.get(), 720, 1280, QImage::Format_RGB32);
  52. this->sendRightImage(m_image);
  53. }
  54. if (campos == RenderPosition::DASHBOARD) {
  55. m_image = QImage(pBuffer.get(), 1280, 720, QImage::Format_RGB32);
  56. this->sendPanelImage(m_image);
  57. }
  58. }