pix3_fuzzer.cc 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. #include "leptfuzz.h"
  2. extern "C" int
  3. LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
  4. if(size<3) return 0;
  5. leptSetStdNullHandler();
  6. PIX *pixs_payload = pixReadMemSpix(data, size);
  7. if(pixs_payload == NULL) return 0;
  8. BOX *box1;
  9. PIX *pix_pointer_payload, *return_pix, *pix2;
  10. NUMA *return_numa;
  11. l_float32 l_f;
  12. l_int32 l_i;
  13. l_uint32 l_ui;
  14. BOXA *boxa1;
  15. box1 = boxCreate(150, 130, 1500, 355);
  16. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  17. return_numa = pixAbsDiffByColumn(pix_pointer_payload, box1);
  18. pixDestroy(&pix_pointer_payload);
  19. boxDestroy(&box1);
  20. numaDestroy(&return_numa);
  21. box1 = boxCreate(150, 130, 1500, 355);
  22. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  23. return_numa = pixAbsDiffByRow(pix_pointer_payload, box1);
  24. pixDestroy(&pix_pointer_payload);
  25. boxDestroy(&box1);
  26. numaDestroy(&return_numa);
  27. box1 = boxCreate(150, 130, 1500, 355);
  28. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  29. pixAbsDiffInRect(pix_pointer_payload, box1, L_HORIZONTAL_LINE, &l_f);
  30. pixDestroy(&pix_pointer_payload);
  31. boxDestroy(&box1);
  32. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  33. pixAbsDiffOnLine(pix_pointer_payload, 2, 2, 3, 3, &l_f);
  34. pixDestroy(&pix_pointer_payload);
  35. box1 = boxCreate(150, 130, 1500, 355);
  36. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  37. return_numa = pixAverageByColumn(pix_pointer_payload, box1,
  38. L_BLACK_IS_MAX);
  39. boxDestroy(&box1);
  40. pixDestroy(&pix_pointer_payload);
  41. numaDestroy(&return_numa);
  42. box1 = boxCreate(150, 130, 1500, 355);
  43. return_numa = pixAverageByRow(pix_pointer_payload, box1,
  44. L_WHITE_IS_MAX);
  45. boxDestroy(&box1);
  46. pixDestroy(&pix_pointer_payload);
  47. numaDestroy(&return_numa);
  48. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  49. pixAverageInRect(pix_pointer_payload, NULL, NULL, 0, 255, 1, &l_f);
  50. pixDestroy(&pix_pointer_payload);
  51. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  52. pixAverageInRectRGB(pix_pointer_payload, NULL, NULL, 10, &l_ui);
  53. pixDestroy(&pix_pointer_payload);
  54. boxa1 = boxaCreate(0);
  55. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  56. return_pix = pixCopyWithBoxa(pix_pointer_payload, boxa1, L_SET_WHITE);
  57. pixDestroy(&pix_pointer_payload);
  58. boxaDestroy(&boxa1);
  59. pixDestroy(&return_pix);
  60. for (int i = 0; i < 5; i++) {
  61. box1 = boxCreate(150, 130, 1500, 355);
  62. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  63. pixCountArbInRect(pix_pointer_payload, box1, L_SET_WHITE, 2, &l_i);
  64. pixDestroy(&pix_pointer_payload);
  65. boxDestroy(&box1);
  66. }
  67. box1 = boxCreate(150, 130, 1500, 355);
  68. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  69. return_numa = pixCountByRow(pix_pointer_payload, box1);
  70. pixDestroy(&pix_pointer_payload);
  71. boxDestroy(&box1);
  72. numaDestroy(&return_numa);
  73. box1 = boxCreate(150, 130, 1500, 355);
  74. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  75. pixCountPixelsInRect(pix_pointer_payload, box1, &l_i, NULL);
  76. boxDestroy(&box1);
  77. pixDestroy(&pix_pointer_payload);
  78. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  79. return_pix = pixMakeArbMaskFromRGB(pix_pointer_payload,
  80. -0.5, -0.5, 1.0, 20);
  81. pixDestroy(&pix_pointer_payload);
  82. pixDestroy(&return_pix);
  83. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  84. for (int i = 0; i < 5; i++) {
  85. return_pix = pixMakeMaskFromVal(pix_pointer_payload, i);
  86. pixDestroy(&pix_pointer_payload);
  87. pixDestroy(&return_pix);
  88. }
  89. pix2 = pixRead("../test8.jpg");
  90. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  91. pixPaintSelfThroughMask(pix_pointer_payload, pix2, 0, 0, L_HORIZ,
  92. 30, 50, 5, 10);
  93. pixDestroy(&pix2);
  94. pixDestroy(&pix_pointer_payload);
  95. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  96. return_pix = pixSetUnderTransparency(pix_pointer_payload, 0, 0);
  97. pixDestroy(&pix_pointer_payload);
  98. pixDestroy(&return_pix);
  99. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  100. return_numa = pixVarianceByColumn(pix2, NULL);
  101. pixDestroy(&pix_pointer_payload);
  102. numaDestroy(&return_numa);
  103. pix_pointer_payload = pixCopy(NULL, pixs_payload);
  104. return_numa = pixVarianceByRow(pix_pointer_payload, NULL);
  105. pixDestroy(&pix_pointer_payload);
  106. numaDestroy(&return_numa);
  107. box1 = boxCreate(150, 130, 1500, 355);
  108. pixVarianceInRect(pix_pointer_payload, box1, &l_f);
  109. boxDestroy(&box1);
  110. pixDestroy(&pix_pointer_payload);
  111. pixDestroy(&pixs_payload);
  112. return 0;
  113. }