JPGHead.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*
  2. * *****************************************************
  3. * XIONGMAI All Right Reserved.
  4. *
  5. * jpghead.h
  6. *
  7. * Created on: 2016年8月31日
  8. * Author: Jason
  9. * *****************************************************
  10. */
  11. #ifndef JPGEXIF_JPGHEAD_H_
  12. #define JPGEXIF_JPGHEAD_H_
  13. #define VR_FRAME_TYPE_HW 0x03
  14. #define VR_FRAME_TYPE_SW 0x04
  15. #define VR_FRAME_TYPE_CM 0x05
  16. typedef struct {
  17. int version; // 版本号
  18. int sensor; // 硬校正特有参数,参考鱼眼信息帧中:SDK_FishEyeParam.FISHEYE_SECENE_E定义
  19. } FishEyeFrameHW;
  20. typedef struct {
  21. int version; // 版本号
  22. int lensType; // 软校正参数,镜头类型,同信息帧中枚举E_FISH_LENS_TYPE
  23. int centerX; // 圆心偏差横坐标 单位:像素点
  24. int centerY; // 圆心偏差纵坐标 单位:像素点
  25. int radius; // 半径 单位:像素点
  26. int imgWidth; // 圆心校正时的图像宽度 单位:像素点
  27. int imgHeight; // 圆心校正时的图像高度 单位:像素点
  28. int viewAngle; // 视角 0:俯视 1:平视
  29. int viewMode; // 显示模式 0:360VR(此参数暂不判断,通过VR_LENSTYPE判断)
  30. } FishEyeFrameSW;
  31. typedef struct {
  32. int version; // 版本号
  33. int cameraType; // 镜头类型COM1=0,COM2=1...
  34. } FishEyeFrameCM; // Common Camera
  35. typedef struct {
  36. unsigned char type; // VR_FRAME_TYPE_HW or VR_FRAME_TYPE_SW
  37. union {
  38. FishEyeFrameHW frameHW;
  39. FishEyeFrameSW frameSW;
  40. FishEyeFrameCM frameCM;
  41. } param;
  42. } FishEyeFrameParam;
  43. /**
  44. * 鱼眼硬矫正EXIF头写入
  45. * srcPath : 原文件路径
  46. * dstPath : 目标文件路径(如果覆盖原文件,同原文件路径)
  47. * pFrameHW : 硬矫正参数
  48. * return : 0成功, 非0失败
  49. */
  50. int jpghead_write_vrhw_exif(char * srcPath, char * dstPath, FishEyeFrameHW * pFrameHW);
  51. /**
  52. * 普通镜头畸变矫正EXIF头写入
  53. * srcPath : 原文件路径
  54. * dstPath : 目标文件路径(如果覆盖原文件,同原文件路径)
  55. * pFrameCM : 畸变矫正参数
  56. * return : 0成功, 非0失败
  57. */
  58. int jpghead_write_common_exif(char * srcPath, char * dstPath, FishEyeFrameCM * pFrameCM);
  59. /**
  60. * 鱼眼软矫正EXIF头写入
  61. * srcPath : 原文件路径
  62. * dstPath : 目标文件路径(如果覆盖原文件,同原文件路径)
  63. * pFrameSW : 软矫正参数
  64. * return : 0成功, 非0失败
  65. */
  66. int jpghead_write_vrsw_exif(char * srcPath, char * dstPath, FishEyeFrameSW * pFrameSW);
  67. /**
  68. * 鱼眼矫正信息写入,同jpghead_write_vrhw_exif和jpghead_write_vrsw_exif
  69. * return : 0成功, 非0失败
  70. */
  71. int jpghead_write_exif(char * srcPath, char * dstPath, FishEyeFrameParam * pFrame);
  72. /**
  73. * 从文件中读取鱼眼矫正参数
  74. * return : 0成功, 非0失败(或者是非鱼眼图片)
  75. */
  76. int jpghead_read_exif(char * srcPath, FishEyeFrameParam * pFrame);
  77. #endif /* JPGEXIF_JPGHEAD_H_ */