Janilabo

Untitled

Aug 12th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 18.15 KB | None | 0 0
  1. {$loadlib pumbaa.dll}
  2.  
  3. // BLACK [0] pixels is the TPA we use flood fill for.
  4. // NOTE: If you use start point to point that TPA contains (which is inside AREA!), it will floodfill
  5. // the outline pixels (TPA points) inside the area, else it will do the opposite.
  6. // ..that is, filling the white pixels (non-TPA points) inside the area.
  7.  
  8. const
  9.   CORNER_COLOR = 255; // ..with this color.
  10.   DISPLAY_DELAY = 1000; // Minimum delay that it waits before it shows the result.
  11.   EXAMPLE = 1; // 1 or 2.
  12.  
  13. {==============================================================================]
  14.   Explanation: Sets points from TPA that are inside bmp as color.
  15. [==============================================================================}
  16. procedure SetPixels(bmp: Integer; TPA: TPointArray; color: Integer);
  17. var
  18.   a, z, w, h: Integer;
  19. begin
  20.   z := High(TPA);
  21.   if (z > -1) then
  22.   begin
  23.     GetBitmapSize(bmp, w, h);
  24.     for a := 0 to z do
  25.       if ((TPA[a].X >= 0) and (TPA[a].Y >= 0) and (TPA[a].X < w) and (TPA[a].Y < h)) then
  26.         FastSetPixel(bmp, TPA[a].X, TPA[a].Y, color);
  27.   end;
  28. end;
  29.  
  30. {==============================================================================]
  31.   Explanation: Returns all the color points from bitmap as TPointArray.
  32.                Result is based on Row-by-Row.
  33. [==============================================================================}
  34. function GetBitmapColorTPA(bmp: Integer; color: Integer): TPointArray;
  35. var
  36.   w, h, x, y, r: Integer;
  37. begin
  38.   try
  39.     GetBitmapSize(bmp, w, h);
  40.   except
  41.   end;
  42.   if ((w > 0) and (h > 0)) then
  43.   begin
  44.     SetLength(Result, (w * h));
  45.     for y := 0 to (h - 1) do
  46.       for x := 0 to (w - 1) do
  47.         if (FastGetPixel(bmp, x, y) = color) then
  48.         begin
  49.           Result[r] := Point(x, y);
  50.           Inc(r);
  51.         end;
  52.   end;
  53.   SetLength(Result, r);
  54. end;
  55.  
  56. var
  57.   bmp: Integer;
  58.  
  59. procedure Example1;
  60. begin
  61.   bmp := BitmapFromString(574, 356, 'meJzt3eFy5CiyBlC//0vXjQ33' +
  62.         'OHxdJQkBgkw459esY1qCJJPP5enufb0AAAAAAAAAANjO11Szdw9AP' +
  63.         'hPjQ3IBUEFy8ZsPxUB8kovf/hyKn/QCAUkufis/FKEGzCK5+K3LoU' +
  64.         'g0WN7V77+71vj2XhtJ9GqOPHooPqbBMuZGj+Tit1mHItQgF8lFHAE' +
  65.         'PRahBQJJrurIfyg4yvRRzF3BL2DLC8hqnbO4vT/rqP6wkzgJ6kWjw' +
  66.         'KMk1nZXEWcDTfEyDLiTXdFbyewF8m3sQEFzjjNT98ggTGudysBKAW' +
  67.         '2Yl1+u//Gp5e4s4t7SVANziM9d0VgJwy5Tk6vXLk776DysBuEVyTW' +
  68.         'cl0E73bkVyvX+9o5aVjBdnJXDL9P/6wGCS6/3rkgtykVy7kVzvX5d' +
  69.         'ckEjF0JGd5Hr/uuSCRCTXhiTX+9clF2RRPXekJrnevy65IAvJtSfJ' +
  70.         '9f51yQUpNI4eeY25nE/e3msjvV7dXpC7xZlYhD/irARKPHQvwTnJd' +
  71.         'bKS8eKsBC51mT6oILlOVjJenJXAuY4DCHdJrpOVjBdnJXBOcjGR5D' +
  72.         'pZyXhxVtKu7znuYPaJ3bDqvshiYl8dvXr8bRBnuOKspF3fc9zB7BO' +
  73.         '7YdV9kcXEvjp69fjbIM5wxVlJu77nuIPZJ1Zq4a2RxcSmOnr1+Nsg' +
  74.         'zmTFWUm7vue4g9knVmrhrZHFxKY6evX42yDOZMVZSbu+57iD2SdWZ' +
  75.         'O3dkcXEjjp6dbeLoHhe4oxVnJW0c3FdyliiRycRClX3YRcDllRYhK' +
  76.         '5FrRdnJe0qDmI36Uo0YBghqcbpqBiWODMVZyXt3FqX0pVowDBCUo3' +
  77.         'TUTEscWYqzkraubUu5SrRsHmEjLoMyK1JiTNQcVbSzpV1KVGJBo8k' +
  78.         'pNNxRgrHJM40xVlJO/fVpUQlGjySkE7HGSkckzjTFGcl7dxXl7KUq' +
  79.         'O9IRt4pVBs/I3FGKc5K2rmsLmUpUd+RjLzTRmvvjnPjZyROs8VZSb' +
  80.         'tNLqsWKUrUdx6Db7bF2rvj0vgBidNpcVbSbvmbql2KEvWdx+Cbrbb' +
  81.         '8Brk0fkDitFmclbQzyJfil6jvMMbfb53lN0iJ8dMRp8firKSdKb4U' +
  82.         'v0R9hzH+fussv8EnPNpaJYLvqPCN3XdRJ85K2j3dJwsIXqK+k1g9n' +
  83.         'sEtv8GHzC3OE28fPxpxGizOStoZ4UvxS9R3GOPv965NtvmEuZV54u' +
  84.         '3jpyNOd8VZSTvzeyl+ifoOY/z93rLPTp8wtyxPvH38dMRprTgraWd' +
  85.         '4L6UoUd95DL7ZW442teRmu5tblifePn5A4rRWnJW0M7yXUpSo7zwG' +
  86.         '32y58x2tt9/u5tbkibePH5A4fRVnJe1M7qUsJeo7kpF3WqhkR+vtu' +
  87.         'q+5BVnjOOLsIs5K2hnbS1lK1COscuy0UMmO1tt1X3MLssZxxNlFnJ' +
  88.         'W0M7aXEpWoR14l2GaJ8h2tt/eOzqvxdKetcRZxdvHESmbtzsxeSlS' +
  89.         'iLjdJ/G1eurudxbbf0Xkp2gv19PMj6DiV7Z7YXfdnFr730X0tIFeJ' +
  90.         'Yrb3YHd3tGQRujivQ3uVnn4+T5t1Rqb1UroSia2KHa1Xhy4kF+ckV' +
  91.         '1jpSrRzcrVsZ7FSdCG5OCe5wspYIrFVt6PFCtJOcnFOcoWVsUSSq2' +
  92.         '47ixWkneTinOQKK2mJxNbc56xBcnFOcoWVtERbJVffvaxUmUaSi3O' +
  93.         'SK6y8Jdoktl6S6zGSi3OSK6y8JdokuZ7Yy0r1aXGZLO2q304Es87I' +
  94.         'eF5KXaL22yO45/ayUpWqzd31njXPRXKFlbpEayfXo3tZqVDVJBfnJ' +
  95.         'FdY2Uu0amy9nv9YtFKt6kguzkmusBYokdgK/pawJBfnZg3FzlNZaI' +
  96.         'ESrZdcIzeyTNEqSC7OSa6w1ijRSrH1klyjNG72Y9eV13CrUiclucJ' +
  97.         'ao0QrJdf4jSxTurvak6vlse//2kkUrqql/gPMWmSuKk2xTInW2Mis' +
  98.         '0U53pXTRuM2jX1742Pd/bZOy/4i/X8kV1jIlSrGRy4XFSa6wNeyoP' +
  99.         'bmO1L19h5r/Fn+/kiuslUqUfRdzs0NyTX/7DjX/Lf5+JVdYK5Uo+y' +
  100.         '4k12CSa674+5VcYS1WotRbeM+OYduZ+OqJJNdc8fcrucJSolDiJNe' +
  101.         'Y984lueaKv1/JFZYSRTM+RPaMrdfsm1Nyxd+v5ApLiQIaGSXbxtZr' +
  102.         '9s0pueLvV3KFpUQBSa4xJNdc8fcrucJSopjGBMrOsfWafXNKrvj7l' +
  103.         'VxhKVFYT8fK5rH1CvC3Lb2vZ0odZtltv+XO+4SXEgVWctfFfDh1dj' +
  104.         'uC3fZbzmBeUqLIRiZXrydTbbdT2G2/5czmJSUK7omIEVsx7XYQu+2' +
  105.         '3nPG8pETx9Q2a96c59yB2O4jd9lvOeF5SovieTq5e66TRbmex237L' +
  106.         'mdBLSpRCr7gRW5Htdhy77becIb2kRFm0h47YCm63E9ltv+XM6SUly' +
  107.         'uI9d+6el+QKbrcT2W2/5czpJSU6F6omLdEjtuLb7VB22285o3pJiX' +
  108.         'KpCyCxlcJu57LbfsuZ1ktKlMt7Bl2eWsUvYYrdzmW3/ZYzrZeUKJ3' +
  109.         '25BqzzhQ+xnqhJxbT/Zl/nj9sL4XrmfLe+CKcTnBKlFH5zRPkjgqr' +
  110.         'uiBJk2vKe4/oxiNm9pISJVUSSWLrkuQa8N4jGvKIsb2kRElJri4k1' +
  111.         '4D3HtGQR4ztJSXK6zyYxFYJyTXgvUf05BGTe0mJUjuKJ7FVSHINeO' +
  112.         '8RbXnE8F5SotTeE+r7ECVXIck14L1HtOURw3tJibL7GF6OtZDkGvD' +
  113.         'eIzrziPm9pERzdam52Kq2W3KFahLNeSTC6QSnRGuIdillsVVyRbPb' +
  114.         'fssZ4UtKtAaxVUdyTbTbfsuZ4ktKtAyxVUFyTbTbfssZ5EtKtBJHe' +
  115.         'Zfkmmi3/ZZzLV9SosU4x1sk10QT9xu81K7lS0rEziTXRJLriGv5kh' +
  116.         'KxszHJ9XWg12LGO9pRnSnrH//SctPrE58SsbNhyVXyxUQD2GWpX//' +
  117.         '9fS/tj6p4deRqu5YvKRE7k1x1JNejXMuXlIidSa46kutRruVLSsTO' +
  118.         'JFcdyfUo1/IlJWJnkquO5HqUa/mSEvG0yH0lueoskFyzXl3CtXxJi' +
  119.         'XhU/CtiwC+UXCcPkVzvXMuXlIjn/O6omN0luepIrke5li8pEe2+jt' +
  120.         '36d6asfMAvlFwnD5Fc7+IMSFhKRC/lXRSn34YlV0lkRyhIIcn1KNf' +
  121.         'yJSWiu5NeitZmY5Jr4jMfIrkedfStDkdmnxgr+NNI5/9zrlDDEqoy' +
  122.         '57os9Wt2cs16+6XGa3xDs0+MFbw3lTYrkagyXZb6JbkOPH/Tr2b2i' +
  123.         'ZHeZSPptCOJytJlqV+S68CMuz+32ScG+0o0gF2W+iW5DszMgJxmn9' +
  124.         'iy1JZLiZqky1K/JBfEZkC4lKhJlkmuWQuA+CZOKIkk6hDJBcuTXJR' +
  125.         'I1CGSC9ZmRiiUqD0kF6zNjHT33O9Q6qV6X30L9ZwuS/2SXBDS+1AY' +
  126.         'k3bBayi5bj1kenLNWgOEJbmeELyGkuvWQyQXzHLrp0Z9f8S0oeC1k' +
  127.         'ly3HiK5oE5730Z4wj6C10py3XqI5IKJWprf4NwSvFyS69ZDJBdMJL' +
  128.         'mGCV6uTZKroynrv/wK7EByDRO8XDskVxcT9yu54Edd8xuZu4JXTHI' +
  129.         'VklwQgeQaI3jFJFchyQVB3O1/81IheNEkVyHJBUFIrgGCF01yFZJc' +
  130.         'EEf5CBiWOsHrJrkKhUquoy/CDnzmGiB40SRXIckFQUiuAYIXTXIVk' +
  131.         'lwQgd9bOEbwikmuQpILIpBcYwSvWEty7aZv5W+VuvCL1c+fuDso19' +
  132.         'KomvyW4OUKvjxex2fU6+y+/vsrGUUYr9h3wtrJFWqF4z4S1JpdIS4' +
  133.         'cnVGvs/vzHI2xs+Dn3rK84Ft7+ekHa3n6u46TZDRHWwl+3LemIMs3' +
  134.         '6n/WFnmpEMr5jJijTSQ94qd/IjHG79XmWjnMUjgpImxhqY/1ffHpt' +
  135.         'hP8gyEEdHdSzNdish/lGsn18Z+BI9WTIsIWsMbxuflhN+2TLsKSWu' +
  136.         'bIJBfspuOky69EFjupn9+bN3shwAjdh91HsPjWOx3JBVt5bthFWEC' +
  137.         'rnsiq+wI+GjDvIiyC5Y9g7d0Bv42cdxE2i7IDK5lyoa0XYcH3Enx5' +
  138.         'ALfMvdMWy69o1vsOAeA1O7l+1uCC7Ug9gbWFut9cuY1UD9hBzItOh' +
  139.         'N2lXMA+gl93IgyAP7KEgggD4Fu6LJBfAJtLmgI+ggFsK/vlL8IAdr' +
  140.         'PMnS/CADax3lUvwgDWtvANL8IAlrTDxS6/AFayz5XuIxjAGja8yUU' +
  141.         'YwC1fn0Rbz1YmFh8gOPckAFnILABS8PMoAFIQWABkIbAASERmAQAA' +
  142.         's6z6J2hW2gvAYnb4w56r7gtgE65oAFIQVQAn4lyPe97VfvwFcFece' +
  143.         '3K3S3u3/QL04vIcyQcrgHau0DGkFUAvrtNH+YQF0JcbFTIyuexM/0' +
  144.         'NGPsizM80PGX1PrvllTzofMvqZXCPMbvQ8JPV7eA0yW9HwkNSf4d1' +
  145.         'hlnfYI5e0AeT1Pr8LT7TfjsIPnQB5fZzfxYban4XknX6AvD7+Rc3L' +
  146.         '3PPLbITuNAYQwZ/fbeJq4oT2AEJxKXFJkwCQi+RiupP/WDPS7DIAk' +
  147.         'MbsyPpndhkASGN2ZP0zuwwApDE7sv6ZXQYA0pgdWf/MLgMAacxKEM' +
  148.         'kFQB3JBUAukguAXCQXALlILgBykVwA5CK5AMhFcgGQi+QCIBfJBUA' +
  149.         'ukguAXCQXALlILjjy9Wb2ioD/kVzwx3tgiTAIRXLBj5LM0rcwneSC' +
  150.         'b3djS+vCLJILXm3/F6uz1w7bkVxQHknCCyKQXGyuIomEF8wludhZd' +
  151.         'QYJL5hIcmWnei1a0kdywSySKzvVq9YePcILppBcqSldiy5NKLxgPM' +
  152.         'mVmtJV65U4kgvGk1x5qVuLjh0ovGAwyZWXulXrnjX6GUaSXEkpWov' +
  153.         'u7aefmWXPfpNcSSlai6eTy+nwtM07TXJlpGItHuo9Lc0wFQ22WFtK' +
  154.         'rnSUq5HkIq/G7lqmSyVXLmrVTnJFo1zl+tYqb+UlVy5q1U5yRaNcJ' +
  155.         'R7qq6TtKrkS6V6oDSv/9ea5h3d88trU6sSYdkp3BJIrEYVq92jj6e' +
  156.         'o6ahVBrlOQXFmoUheSKyC14i7JlYIS9SK5AlIr7pJc8alPR5IrILX' +
  157.         'iLskVn/p0JLmi+S6UcsWR4iwkV3CK05fkikZyBRT/OCRXZCrTneSK' +
  158.         'RnLFFPxEJFdkHSuj1N8kVzSSK6bgJyK5IutbGaV+Sa54JFdYkdtYc' +
  159.         'oWlLE+QXNFIruBiHo3kiklNnvNQ72npOpIruJhHI7kCyliQRGuWXK' +
  160.         'FIrvgCno7kiiZpNRKdo+QKRXKlEO2AJFc0SauR6BwlVyiSK4tQZyS' +
  161.         '5Qklaip9lp1j/15uYz9yE5Moi1BlJLtrlSq7XA+2nn6tJrixCnZHk' +
  162.         'ol325Gpftn6ulq55dhbnjCQXXaQ7x44d2D0H9/G7VuoWX5wzklx0k' +
  163.         'e4ce8WN2Kr2p1yqR7n3uZtidhlole4cezWhZr7lslAqSYl+4dNkdh' +
  164.         'nYUXsf6uS7ykukmJx4OpIKzS4Dm2ppRW1cp6RQism5pyOp0OwysKn' +
  165.         'qbtTG1UoKpZicey6Mbpldht3tfAoVDamHW5TUSj0BzpV/Q+Vbry7O' +
  166.         'K6aeACVKfzogtnqQXABdiK1hJBdAL2JrmKPqqSpAhQ0za/yOJBdAd' +
  167.         '5tk1mtSWEguAKrNCov394otAC5NDAvJ9ZEiAJyYe0lKro8UAeDI9B' +
  168.         'tScn2kCAAfRbgeJde7hX8jEECLIBej5HonuQA+CnIxSq53kgvgXZx' +
  169.         'bUXK9k1wAf4S6EiXXO8kF8Fu0+1By/bH839YChBXz5om2npfkeiO5' +
  170.         'gCMHfx9hq9nbyuenaO//sCcdBRDZ75v56J93I7mITE/SUdKPgX8+Z' +
  171.         '/nY9VouuRbYAr85UHrJ20uS649033uUWGMXfHOUdJH6WjgKrLw7ar' +
  172.         'Rkcn1bZiObc460y95Ff5Lr41e2IrkIzjnSLnsXSa4/JBfBOccx1Dm' +
  173.         'yjzfzStf1Rx/jqdrs3ZTKuGbeOb4xTEpkuyVX38xKGgTpFsxvjm+A' +
  174.         'nyKrdky7JdfrgfCavaEaeVeOg3vanworeEBHh7L2YW0eWz+yr39PT' +
  175.         'u1RH8ur5tHsmVyvTuE1exMdrLGLrTiy55zUVtlD2Ta5Xs3hNXv5fS' +
  176.         'yzkX04suec11bliUByfVtpLztwXg+5LKzKE4TYAl7FqWT2CUJsweZ' +
  177.         'uDbUbgCDEFmyrYqjdAwQhtghFE45RXU8HQQSSiwh02mAtpXZMTCe5' +
  178.         'mEuDjddYcOfFdJKrnDqwgC5tbBaYS3LdoiCk1rF1TQETSa4KCkKdw' +
  179.         'nF7ju2wAE1SRzWoZqAaKSCSC2YxXOXUit8kF0Rgyj5SFj46SijJBV' +
  180.         'OYOBXg0kk8Sa5ldD9K/TDGVqO31WZpdH6hSa5VvWdZ4SnrhClWnUH' +
  181.         'XCxUub63u36sT30mo6YHp1jiIBbbARCU3klsLYso1la4ReinsJS0H' +
  182.         'kUWe0LALI6/yptJ+kEKcOY2zEhZzq7X0IaQQZE6DLIP13G0trQjBh' +
  183.         'RrSUIthDXVNpRUhrIDjGXBJAAQRNiPCLgyAiYKnQ/DlATBe8GgIvj' +
  184.         'wABuuYC19vOj6516MASK1LIpzkVMcIE14AtGTB3Q9WXT6ICS+AzVX' +
  185.         '8kcwun6GqnyO5AHY28rNSx+cLL4A9Xd7/j6ZV40uFF8Bujm7+pz9e' +
  186.         'lbtcyfQVAjDS72s/Tlod+bjCsKsFoLuv/2/2cu5JvXgAKqx04a+0F' +
  187.         'wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY6/8ADx+DZA==');
  188. end;
  189.  
  190. procedure Example2;
  191. begin
  192.  bmp := BitmapFromString(490, 361, 'meJzt3dtyorkOgNG8/0tnVw2z' +
  193.         'KQYSIvz7INlr3TexP4E6B9L9/Q0AAAAAAAAAAAAAAAAAAAAAAADzf' +
  194.         'AEks3ov1iAUkIqlFCQUkIqlFCQUkIqlFCQUkIqlFCQUkIqlFCQUkI' +
  195.         'qlFCQUkIqlFCQUkIqlFCQUkIqlFCRUA9FgHK+vIKE+dSumGwzixRU' +
  196.         'k1KdsbxjKiytIqI885pIORvDKChIq7rWVetCdl1WQUEG/hRIQ+vKa' +
  197.         'ChIqyPaGObymgoSKeF9JQ+jICypIqD9FEskIvXg1BQn1XrCPjNCLV' +
  198.         '1OQUO/F+ygJXXgpBQn1xqdxxITrvI6ChPpNQxkx4TqvoyChftScRU' +
  199.         '+4yIsoSKgfXckiKVzhFRQk1KvrTVSFZl4+QUI96RJkQtUv0hv9HNi' +
  200.         'VdEFCPekVZHRYg0vOgJpJFyTUo741hrY1uOQMqJl0QULddU9he5/M' +
  201.         'gJpJFyTUzaAO4/IaXHIG1Ey6IKFuyq1Zg0vOgJpJFyTUd82fMBpcc' +
  202.         'gbUTLogoSYUsL0PZEDNpAs6PNS069f6kSjXGVAz6YIODzXz+oXejs' +
  203.         'h1BtRMuqCTQ02+u+19FANqJl3QsaGWXLzjBz12cFUYUDPpgo4Nter' +
  204.         'iVX4Tn4sMqJl0QWeGWnvrLh/9zMEVYkDNpAs6MNTyK9veJzCgZtIF' +
  205.         'nRYqyX2vHyPJRfiNATWTLui0UHnue/EkeS7CjwyomXRBR4VKdVnbe' +
  206.         '28G1Ey6oHNCJbzplSMlvA6PDKiZdEGHhEp7zeaDpb0RNwbUTLqgQ0' +
  207.         'KlvabtvSsDaiZd0Amhkt+x7XjJL4UBNZMuaPtQJS7YcMgS9zqZATW' +
  208.         'TLmjvUIVu9+lRC13tTAbUTLqgvUMVup3tvRkDaiZd0PV3HWfWq9Ic' +
  209.         'q2v9YXWeYhRrJl3Q9VBSLzEzuxE3EK2ZdEG2d1G2d3KiNZMuqEsot' +
  210.         'eeb1txw2+jWTLqgXqEEn2xOcGNtJl0z6YJs76Js7+SkayZdUMdQms' +
  211.         '80obaBXqFeM+mCbO+ibO/k1GsmXVDfULJPMzq1UV4kYDPpgrqHUn6' +
  212.         'OoZ0N8ToNm0kXZHsXZXsnp2Ez6YJGhBJ/gnGRja8LGZtJFzQolP6j' +
  213.         'GVxySjaTLsgSKMrgklOymXRBvgAvyre8khOzmXRBfvhVlB83J6dnM' +
  214.         '+mCbO+ibO/k9GwmXZBf+ijKr1klJ2kz6YJs76Js7+QkbSZdkH8uoy' +
  215.         'j/QE1yqjaTLsg/NFqUf9o3OWGbSRdkexdleycnbDPpgvwHW0X5L+2' +
  216.         'S07aZdEH+c9ui/HfSycnbTLog27so2zs5eZtJFzQ5lLn0crGkQYym' +
  217.         'cDPpgmzvomzv5BRuJl3Q/FBG08WVjEYwgcjNpAtaEsp0rmtuKP4cv' +
  218.         'jhqdvLdP2J7F2V7J3f9i6NjJ3XsxT+1KpQBXdQWUPZpuvz1eua8zr' +
  219.         'x1g4WhzOiKhnqCz2R7Nzvz1g1s76Js7+R6fXF04NQOvHKbtaGMqdm' +
  220.         'n6aSerONfr6fN7rT7NlseavkBivqom8jz9f3r9agJHnXZK5aHWn6A' +
  221.         'omzv5GzvZkdd9ooMoTKcoZx4NHmX6P7X6zlzPOemF2UIleEM5djey' +
  222.         'Y0Y0CGjPOSa1yUJleQYhQSLCbvKoAGdMNAT7thFnlB5TlKCr7WTGz' +
  223.         'SgE2Z6wh27yBMqz0lKsL2TGzeg7ce6/QV7SRUq1WGS+7OVmGsNHdD' +
  224.         'ew937dh3lCZXnJCX43Du50e8A3Hi4G1+trzyh8pykBNs7uTfxe81l' +
  225.         '1/nueq/ukoRKcoxCvOckOdu72a736i5DqAxnKOfim4S/rul6lT39V' +
  226.         'qlvvS1nseWlRsgQKsMZyvloe3dfv1b6n377S3POByptvxsNsjzU8g' +
  227.         'MU9f4L86elOieyZf7otcC4JpvV3uw64ywPtfwART11e782l0Q+fJO' +
  228.         '/Dmjax6pus+uMszaUMTW7f1IdXI/LB33aGp+5vSc8/kw73WWohaHM' +
  229.         'qFnbMswQ/Jw1/njHad+5mvBRJtjmIqPZ3oVc/FZ2quDbr/H71Wbec' +
  230.         'Y+ee9xiglWhDOgjr4uuLWDC7Lvu8Jk/L376oNXtcYsJVv08a/4HrW' +
  231.         'jEDyJzxt/vU/El23vJR+xugyvMYXvn9Ocq22x7322zwxdepHrA6ue' +
  232.         'fxucG2Ux4D0n+EWyww5e/yWfhR7+o9OFn8n25PD5aWRdLlhhE3R2+' +
  233.         '/ORFu92UPvxMtncGDS/2E7b3zfJN+KlV3/H+8RgV1T35ZN7OtFbza' +
  234.         'roes9Y4Cu3wJNs7yRkaFD32fLb3Qmu/d11xHPnPfD9hkqMmOcZHKp' +
  235.         '55iWmhTOTR9c8ku/SsOJTMn4Q/HizPIfOcJKjcgVeZE8o4HqVavEV' +
  236.         'Hk/DYT0fKc8I8Jwkqd+BVbO+ZOn7emO1x5sv2SXja7f2d7DB/qnXa' +
  237.         'hSaEMoubvh06PlrpASU5/OsxkhzsLtt53ih01LVGhzKIm+4d0v5dM' +
  238.         'N/yw/94gOWnepXwSD+qcs7lbO8JRkSwvR8tPP9vHzph0oRH+lGVcy' +
  239.         '43NJQpjPvebPJP5udb8m3wNx8xZ8+cp3pS4pAZ2N7j1Gq7x7Am36L' +
  240.         'c9v5OfLC7/CdMYlyow0dQ8VtSe4wsya8wZI6Z+Wzf6Y+XR5Wv62up' +
  241.         '+06ePQaXoX/mkpnP9p3+eHlYAt2Vfgv9NoNb/m2r5CUzHy/z2VLxB' +
  242.         'XhfSb5sz/nIk61NlD9j2hOmPVg2fvjV0cy7L//csoSFn5yUaJjzkD' +
  243.         'lPlZDt3Uuedzskf/DJVr0xvkrDhOdMeKSc/NJHF6neaVzi8WfqdZe' +
  244.         'PHqdKwITnTHiknPxzGdctuXiGt1UUcv0unz5CoXrZjprtPGnZ3het' +
  245.         'urXt/amL19l4e38nO22qw2S25IvKbST85zUqfpRpmq/T8AfLpctz4' +
  246.         'DwnSc72brb2yrZ3m2l7uFy6PAfOc5LkuoQ6s/YJ23vmB5pj2jdAKn' +
  247.         'ZLcuYkx8hv/k9z9rD81tu8t3y+OW8dKRotw7EznKEE27tBhivb3ld' +
  248.         'M+I2butGWn3z5Aaq4/oP4zHpVerryiIf9PjLmQn/e6OKV6xZbfvLl' +
  249.         'B6hi71Ajbjeo2KcPu/fgJngf8Hre0gNae/jS6WbaO1T3243LZXvP9' +
  250.         '1vDLm2rD2jh+aunm2b7UB0vmGd1t/0RXv2Y0fa+WXWFDdLNcUKoXn' +
  251.         'dM8j2TK3+KJ68Zkz9bJltyiz3STXBIqLTfxmx+2EMGN8FjyRJfqc1' +
  252.         'ke2d2SCjbm9/cS/ZNus2A5l9km3SjnRPqyk2zre6Lf5Ynt5i2928m' +
  253.         '32WndEMdFSrVd5iPfTtxToXenrTEzOtslm6c00LleXeH7Z3HiF9H2' +
  254.         'mxAtndCp4VK8rbqtN+HP5DvewdNu9F+6QY5MNRHV07725oHDm6EQW' +
  255.         '846f5oScy51JbpRjgzVPDWaT/x7vUgPGX0jsE/TbjXrum6OzZU5OJ' +
  256.         'pP/Hu+DgnG/erOn0fKhXbO49jQy3Z3pZDHuN+R777Q2Uz+mobp+vr' +
  257.         '5FDv7555dXd/tNO8qeeLo4iht9s7XUeHh5rwKh70gIcP7iLb+7pxF' +
  258.         '9w+XS+Hh/rt+slX94gHPMef6fxYOSjzj/VPINTo7392f7Rxj3mCaT' +
  259.         '/vOGFAtvdaQn0Pfu9B90cb95jbm/lO0UMG5Lm9kFA35X5r44v0Rsw' +
  260.         '9oe43PSfdRULdfI3Z3vLm8dEsDO4jfXOJHyTU3T1Fryba5vHpLMzu' +
  261.         'I7b3EkI96vsFr7ZJtA3C+D7ihTOfUE984r2Z5kGY4Ke8diYT6kmXI' +
  262.         'KrmYXvP5OUzk1BPunzzRNUkrgzCEBvY3jMJ9eQWxKt+AxcHYY5tfP' +
  263.         'IzjVCPrr/tRM8kfBK4kL835xDq0cV3fYuZhB+fLeer1wmEevRUw5u' +
  264.         'Ei7K9l7O9JxDq0WuNeB8lk/DG4yR8+3E0oR41b28Zk/BLf6n4Pamh' +
  265.         'hLr7LUUkkYwZjJiCyV7k50fjCHX3JsX7ShomYXvn5OdHgwh117aiB' +
  266.         'Uxi0CDM9zrbexCh7mzvusZNwXy78M/zjiDU3Z8prrwjhXGGTsGIe/' +
  267.         'H2re6Euvv0p5PSZTB6CqbckXdw9SXU3UdPLd2SsL0Lsb37EurO9i5' +
  268.         'nwhQMui/vv+1IqDvfl6tlzhTMuruGHzDxI6HupChk2rA8K0bwCxRd' +
  269.         'CHUnRSG2d2m2dxdC3UlRxcxJeVYM0vyrzdwJdSdFCV9s5LcRT35SF' +
  270.         'SXUnRS88qyYT/Mgoe6k4JVnxXyaBwl1JwWvPCvm0zxIqDspeOVZMZ' +
  271.         '/mQUI9UoNHng9LyB4k1CM1eOT5sITsQUI9UoNHng9LyB4k1CM1eOT' +
  272.         '5sITsQUI9UoNHng9LyB4k1BNBuPFMWEX5IKGeCMKNZ8IqygcJ9UQQ' +
  273.         'bjwTVlE+SKgngnDjmbCK8kFCPRGEG8+EVZQPEuqVJngOLCR+kFCvN' +
  274.         'MFzYCHxg4R6pQmeAwuJHyTUj2Q5memvpX+QUD+S5WSmv5b+QUL9SJ' +
  275.         'aTmf5a+gcJ9RtlzmTuyxlBkFC/UeZM5r6cEQQJ9YY4pzHxDEwhSKg' +
  276.         '3xDmNiWdgCkFCvSHOaUw8A1MIEuo9fc5h1kkYRJBQ7+lzDrNOwiCC' +
  277.         'hPqTRCcw5TzMIkioP0l0AlPOwyyChIpQaW/mm4pxBAkVJNSuTDYbE' +
  278.         'wkSKkioXZlsNiYSJFScVvsx04QMJUioOK32Y6YJGUqQUB+RayemmZ' +
  279.         'O5BAn1KcX2YI5pGU2QUJ9SbA/mmJbRBAnVQLTqTDAz0wkSqo1udZl' +
  280.         'dcgYUJFQz6SoytfzMKEioZtJVZGr5mVGQUFeoV4t5lWBMQUJdJGAV' +
  281.         'JlWFSQUJdZ2G+ZlRIYYVJFQXMmZmOrWYV5BQvSiZk7mUY2RBQnUkZ' +
  282.         'jYmUpGpBQnVl555mEVRBhckVHeSZmAKdZldkFAjqLqW/qUZX5BQgw' +
  283.         'i7ivLVmWCQUONoO5/mGzDEIKGGkncmtfdgjkFCjfb1j9Wn2JzIOzH' +
  284.         'KIKHm0HkcbTdjoEFCTSP1CKrux0yDhJrJF/gdibkrYw0Saj7Nr9Nw' +
  285.         'Y4YbJNQSPm9sJt32zDdIqIXE/5RiJzDlIKHW8plkkFDnMOggoTKwm' +
  286.         't4Q5zTGHSRUHtbUE0HOZOhBQmVjZX2LcDajDxIqp2PX17EX584TIE' +
  287.         'iozL7+b/VBhjvnpvzJ0yBIqBI23mwbX402ng9BQhWy0yeoO92Fvjw' +
  288.         'rgoSqqO7qq3typvH0CBKqtCrLsMo5ycDzJEioPXw9WH2WfyU8EiV4' +
  289.         'wgQJtZ+v/9r+47IZT54gobb39ZOEjwk3nktBQp3px/Ubt/r47MwTL' +
  290.         'EgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIB' +
  291.         'VLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUg' +
  292.         'oIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVL' +
  293.         'KUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoI' +
  294.         'BVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKU' +
  295.         'goIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKUgoIBVLKegLIJn' +
  296.         'VexEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +
  297.         'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +
  298.         'IBK/gdQF2fi');
  299. end;
  300.  
  301. function Bitmap(ID: Integer): Boolean;
  302. begin
  303.   Result := ((ID = 1) or (ID = 2));
  304.   if Result then
  305.   case ID of
  306.     1: Example1;
  307.     2: Example2;
  308.   end;
  309. end;
  310.  
  311. procedure Setup;
  312. var
  313.   TPA: TPointArray;
  314.   shape: T2DPointArray;
  315.   w, h, t, x, y: Integer;
  316.   start: TPoint;
  317.   area: TBox;
  318. begin
  319.   if not Bitmap(EXAMPLE) then
  320.   begin
  321.     WriteLn('Invalid example... TERMINATING!');
  322.     TerminateScript;
  323.   end;
  324.   GetBitmapSize(bmp, w, h);
  325.   DisplayDebugImgWindow(w, h);
  326.   DrawBitmapDebugImg(bmp);
  327.   FreeBitmap(bmp);
  328.   Bitmap(EXAMPLE);
  329.   TPA := GetBitmapColorTPA(bmp, 0);
  330.   t := GetSystemTime;
  331.   pp_TPABlob(TPA, sd8ways, shape);
  332.   //pp_TPAGroup(TPA, 1, shape);
  333.   //shape := SplitTPA(TPA, 1);
  334.   WriteLn('TPABlob() finished in ' + IntToStr(GetSystemTime - t) + ' ms.');
  335.   for x := 0 to High(shape) do
  336.     SetPixels(bmp, shape[x], Random(16777215));
  337.   DrawBitmapDebugImg(bmp);
  338.   FreeBitmap(bmp);
  339.   SetLength(TPA, 0);
  340. end;
  341.  
  342. begin
  343.   ClearDebug;
  344.   Setup;
  345. end.
Advertisement
Add Comment
Please, Sign In to add comment