/*
    Lib_imgs
    (c) barsunduk
    ,  2011
    
        
*/

// ******************************************************************
//    

//   ,        
function copyxxyy(x1, y1, x2, y2: integer): image;

//  
function copyscr: image;

//   
function copyrect(img: image; x, y, w, h: integer): image;

//    
procedure setcolorint(col: integer);

//     ( 16- )
procedure setcolorhex(col: string);

//   imgSource   imgDest
function draw2image(imgSource, imgDest: image; x, y: integer): image;

//   
function createimage(w, h: integer): image;

//   
function resize(img: image; w, h: integer): image;

//  
procedure setcolorint(col: integer);

//  
procedure setcolorhex(col: string);

//     col
procedure cls(col: integer);

//     col
procedure clsa(col: integer);

//     ( )
procedure point(x, y, col: integer);

//    
function getpoint(x, y: integer): integer;

//       
procedure imgsetcolor(color: integer);

//       
function imggetcolor: integer;

//        (0/1)
procedure solid(value: integer);

//         (0/1)
function getsolid: integer;

//   
function imgline(img: image; x1, y1, x2, y2: integer): image;

//   
function imgrect(img: image; x, y, w, h: integer): image;

//    
function imgfillrect(img: image; x, y, w, h: integer): image;

//   
function imgellipse(img: image; x, y, w, h: integer): image;

//    
function imgfillellipse(img: image; x, y, w, h: integer): image;

//   
function imgtriangle(img: image; x1, y1, x2, y2, x3, y3: integer): image;

//    
function imgfilltriangle(img: image; x1, y1, x2, y2, x3, y3: integer): image;

//   
function imgfill(img: image; x, y: integer): image;

//   
function imgarc(img: image; x, y, w, h, a1, a2: integer): image;

//    (     )
function imgbow(img: image; x1, y1, x2, y2, x3, y3: integer): image;

//    (2-      )
function imgbezier(img: image; x1, y1, x2, y2, x3, y3: integer): image;

//  
procedure scrfill(x, y);

//     ( )
function getimagepoint(img: image; x, y: integer): integer;

//    ,     (da, dr, dg, db)
// ..     = 0,  da = -128 -     
function addargb(img: image img; da, dr, dg, db: integer): image;

//     
// (  )
function setalpha(img: image img; a: integer): image;

// ******************************************************************
// ,    

//    1
procedure bmp1create (w, h: integer);

//   
procedure bmp1free;

//     (   bmpcreate)
//      
procedure bmp1setimage(img: image);

//    
function bmp1getimage: image;

//  [x, y]   col
procedure setpixel1(x, y, col: integer);

//   [x, y]
function getpixel1(x, y: integer): integer;

//  (  )
procedure bmp1fill(x, y, col: integer);

//  (  )
procedure bmp1line(x1, y1, x2, y2, col: integer);

// 
procedure bmp1bow(x1, y1, x2, y2, col: integer);

//   
function bmp1width: integer;

//   
function bmp1height: integer;

//    2
procedure bmp2create (w, h: integer);

//   
procedure bmp2free;

//     (   bmpcreate)
//      
procedure bmp2setimage(img: image);

//    
function bmp2getimage: image;

//  [x, y]   col
procedure setpixel2(x, y, col: integer);

//   [x, y]
function getpixel2(x, y: integer): integer;

//  (  )
procedure bmp2fill(x, y, col: integer);

//  (  )
procedure bmp2line(x1, y1, x2, y2, col: integer);

// 
procedure bmp2bow(x1, y1, x2, y2, col: integer);

//   
function bmp2width: integer;

//   
function bmp2height: integer;

//    2
procedure bmpcreate (w, h: integer);

//   
procedure bmp2free;

// ********************************************************
// ,   ...   

//  :
function getAlpha(col: integer): integer;
function getRed(col: integer): integer;
function getGreen(col: integer): integer;
function getBlue(col: integer): integer;

//  => integer
function argb2int(alpha, red, green, blue: integer): integer;

//         
function pixMix(colSrc, colBack: integer): integer;

// Copy   Delphi    
function sCopy(s: string; offset, count: integer): string;

// Delete   Delphi    
function sDelete(s: string; offset, count: integer): string;

//    HEX  INT,    
function hex2int(hex: string): integer;

//    HEX  INT,    
function int2hex(i: integer): string;
