Advertisement
Janilabo

Untitled

Dec 24th, 2013
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 25.73 KB | None | 0 0
  1. {$loadlib pumbaa.dll}
  2.  
  3. const
  4.   SHAPE = 11; // 0=SQUARE, 1=HALF-SQUARE, 2=HEXAGON, 3=PENTAGON, 4=CIRCLE, 5=ROTATED-SQUARE
  5.               // 6=4-SIDED STAR, 7=5-SIDED STAR, 8=6-SIDED STAR, 9=ARROW, 10=TRIANGLE, 11=RECTANGLE
  6.   ACCURACY = 0.30;
  7.   WIDTH_MIN_RESIZE = -3;
  8.   WIDTH_MAX_RESIZE = 5;
  9.   HEIGHT_MIN_RESIZE = -3;
  10.   HEIGHT_MAX_RESIZE = 5;
  11.  
  12. procedure DebugBitmap(bmp: Integer);
  13. var
  14.   w, h: Integer;
  15. begin
  16.   GetBitmapSize(bmp, w, h);
  17.   DisplayDebugImgWindow(w, h);
  18.   DrawBitmapDebugImg(bmp);
  19. end;
  20.  
  21. function GetBitmapColorTPA(bmp: Integer; color: Integer): TPointArray;
  22. var
  23.   w, h, x, y, r: Integer;
  24. begin
  25.   try
  26.     GetBitmapSize(bmp, w, h);
  27.   except
  28.   end;
  29.   if ((w > 0) and (h > 0)) then
  30.   begin
  31.     SetLength(Result, (w * h));
  32.     for y := 0 to (h - 1) do
  33.       for x := 0 to (w - 1) do
  34.         if (FastGetPixel(bmp, x, y) = color) then
  35.         begin
  36.           Result[r] := Point(x, y);
  37.           Inc(r);
  38.         end;
  39.   end;
  40.   SetLength(Result, r);
  41. end;
  42.  
  43. var
  44.   segment, TPA: TPointArray;
  45.   bmp, i, w, h, t, star, image: Integer;
  46.   ATPA: T2DPointArray;
  47.  
  48. begin
  49.   ClearDebug;
  50.   if InRange(SHAPE, 0, 11) then
  51.   begin
  52.     image := BitmapFromString(1200, 600, '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');
  53.     case SHAPE of
  54.       // square
  55.       0: bmp := BitmapFromString(35, 30, 'meJztzTEBAAAMAiD7l95S6AUFSHauTyQSiUQikUgkEs08AoPJww==');
  56.       // half_square
  57.       1: bmp := BitmapFromString(32, 32, 'meJy1lssKwCAMBPf/f7qFHopUq3ns5ODJnQHRGEkXWXoK5b8rx+cUI5ZQfJh2xQz0KpY0o+IP5VJsOBbFHtJXHAlNRSTeUQSzZUU8WFOkUgVFNkLvz0boU6UvBn236edJdxi6SdJ9nv6q6N+WHhjomYce2+jJU3Ddlgnerg==');
  58.       //hexagon
  59.       2: bmp := BitmapFromString(32, 35, 'meJztlisOACAMQ7n/pUeCIBMQ9qsAOoXpKx2IijimjfEoIuRalx2txOVICFvYr+cNEgtuUeVXCn2sJQ39pUFwbUE++eSTT/6HfEl0DAt8nq+oZLiWgmtZmdSWsDGyJjxWyVySDrNp9KY=');
  60.       // pentagon
  61.       3: bmp := BitmapFromString(43, 37, 'meJztlkEOwCAIBPn/p+2hCQdTCwrsHsSTadKdkVp0jNAQkVhACP3SdQKmm0/q0CsWoBSe/CKHrdWll+IsLcUhuJbI64llPIiq2EjOzNJfyQzHNJNPCridTjjWgaJHCYWuDnSBwf4E1wpMUPqVhi4Adlg1w8sFYA4/lBYAOJj5LVDq4L+XcgWKHLYyWyDd4SBNsscK9ABR4ESr');
  62.       // circle
  63.       4: bmp := BitmapFromString(30, 29, 'meJzt1jEOACAIA0D//2ncHJQGlXYggVW5GAmKWRADRJQXm3+r+awnX3GS5AWi3GRRpLKLUNiTIrIbWE6mswtvuWUkW8FOkcpcXPSQuohONtk/eL/BTaFPEZl5BhWF0r9/Q90ECYQzTA==');
  64.       // rotated_square
  65.       5: bmp := BitmapFromString(37, 37, 'meJzt1TsKQCEMRNHsf9OxEFKI+EniBSGvsskc8Kmj+sEnIjCHiQYB4kA8Fafhj8RFbLq4DUwUD6NSxKuQoOgYd4vkILkt5E8njzR5YcnniHls+4KpEswycVgAFiBWUQJWolhFGR+sooxHVVHGRbJKyKL0WQ1b8SGy');
  66.       // star4
  67.       6: bmp := BitmapFromString(38, 44, 'meJzt1dEOgCAIhWHe/6XtqtaW0Sacf6Z4i/DhptjaP5aZ8SKMLi9eFoaWqOMwdHmxW1+KlshwOtQf3YmD3c6VvvktPZLL9NmtBkB+cfI3f7rMGZ02sqx4V9L0Oe/5ZzSCDoQUqPRxlcigwITcQbwr5KdToggluX3E4dwDAtwk2Q==');
  68.       // star5
  69.       7: bmp := BitmapFromString(47, 40, 'meJztl8EOgDAIQ/n/n54HL0YWgtACMeNkzNY+UYuuBSgRQchgag7MTTKE58AYJPq4pebAaPdGngPjJLHPU+vABByLeUgwEiqebHuML5XkjRGxtS5G8tjV8PhdqC2KiTN4MprAFqGk8iLYJoevi/T4hWGGkOT3wgV/DDPqbcpPEGBYeRbU8BgirwyxI4UHY/ga3yckEt5Gv+anbNeLUTCQ2QQJK+DtDks9/yDylVSrH7gXZQk15A==');
  70.       // star6
  71.       8: bmp := BitmapFromString(33, 36, 'meJztlUEKACAIBP3/p+saSGnmKkpeo5kgV8e4KyK6vGHhQy1oxUpGWDjT3YJW7GheljPHxfKuIKlcCAF93iZKFdOaGKUqaRUJaEWDv0A3bbkVxpkNJm3MStK8xHaqrNy0/iiJloA+B/FjFDb+BC6FlhM=');
  72.       // arrow
  73.       9: bmp := BitmapFromString(38, 30, 'meJzV1dEKwCAIhWHf/6XtIgipFTV3fpZXG4HfZGrud4SZwRwpVosRY2mA2BFqccyvE2dNIhIXaS0RL7jPq5COG9kSj/nJKcMWF7mymsjfAo7X2B7I/zh7BUQA/cPO2TkSietTxd0RM59+aj74BhsJbHjjxgDEaPHbGBY9V2MB29ceiw==');
  74.       // triangle
  75.       10: bmp := BitmapFromString(39, 29, 'meJzF1jsOACAIREHuf2lsTYwG+bylZ6fQAO7JMrNsa0mEXR7dLcY9FcDl0Vv+nPtOHnJ5NJLZ68bTGl0e/c2pu7mEosujfC//NJJPyKP8YJGMUB7l16LkAOBR/qiTnK88aopadsUbjg==');
  76.       // rectangle
  77.       11: bmp := BitmapFromString(31, 26, 'meJz7/x8KGKgH/qMCTBFKALJp1DUZ2UxamExrw//DInHU8FHDRw0fNXzU8FHDB8RwuLG0q6DhbGpZgcsoYhs9eAGygQD0RUQt');
  78.     end;
  79.     segment := GetBitmapColorTPA(bmp, 0);
  80.     TPA := GetBitmapColorTPA(image, 0);
  81.     FreeBitmap(image);
  82.     image := CreateBitmap(1200, 600);
  83.     FastDrawClear(image, 16777215);
  84.     ATPA := pp_TPACluster(TPA, 5);
  85.     SetLength(TPA, 0);
  86.     for i := 0 to High(ATPA) do
  87.     begin
  88.       pp_TPADimensions(ATPA[i], w, h);
  89.       pp_TPAResize(ATPA[i], (w + RandomRange(WIDTH_MIN_RESIZE, WIDTH_MAX_RESIZE)), (h + RandomRange(HEIGHT_MIN_RESIZE, HEIGHT_MAX_RESIZE)));
  90.     end;
  91.     TPA := pp_Merge(ATPA);
  92.     SetLength(ATPA, 0);
  93.     pp_TPAControlBoxes(TPA, ckExtract, pp_Box(0, 0, 1199, 599));
  94.     DrawTPABitmap(image, TPA, 0);
  95.     t := GetSystemTime;
  96.     pp_TPAControlSegment(TPA, ckExtract, segment, ACCURACY);
  97.     WriteLn(IntToStr(GetSystemTime - t) + ' ms.');
  98.     DrawTPABitmap(image, TPA, 255);
  99.     DebugBitmap(image);
  100.     FreeBitmap(image);
  101.   end;
  102. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement