# OBJ_BITMAP_LABEL Bitmap Label object. ![Note](pics/objbitmaplabel.png) Note Anchor point position relative to the label can be selected from [ENUM_ANCHOR_POINT](/en/docs/constants/objectconstants/enum_anchorpoint) enumeration. Anchor point coordinates are set in pixels. You can also select bitmap anchoring corner from [ENUM_BASE_CORNER](/en/docs/constants/objectconstants/enum_basecorner) enumeration. For bitmap label, you can select [visibility scope](/en/docs/constants/objectconstants/enum_object_property#visual_rectangle) of an image. Example The following script creates several bitmaps on the chart. Special functions have been developed to create and change graphical object's properties. You can use these functions "as is" in your own applications. ``` //--- description #property description "Script creates \"Bitmap Label\" object." //--- display window of the input parameters during the script's launch #property script_show_inputs //--- input parameters of the script input string            InpName="BmpLabel";               // Label name input string            InpFileOn="\\Images\\dollar.bmp"; // File name for On mode input string            InpFileOff="\\Images\\euro.bmp";  // File name for Off mode input bool              InpState=false;                   // Label pressed/released input ENUM_BASE_CORNER  InpCorner=CORNER_LEFT_UPPER;      // Chart corner for anchoring input ENUM_ANCHOR_POINT InpAnchor=ANCHOR_CENTER;          // Anchor type input color             InpColor=clrRed;                  // Border color when highlighted input ENUM_LINE_STYLE   InpStyle=STYLE_SOLID;             // Line style when highlighted input int               InpPointWidth=1;                  // Point size to move input bool              InpBack=false;                    // Background object input bool              InpSelection=false;               // Highlight to move input bool              InpHidden=true;                   // Hidden in the object list input long              InpZOrder=0;                      // Priority for mouse click //+------------------------------------------------------------------+ //| Create Bitmap Label object                                       | //+------------------------------------------------------------------+ bool BitmapLabelCreate(const long              chart_ID=0,               // chart's ID                        const string            name="BmpLabel",          // label name                        const int               sub_window=0,             // subwindow index                        const int               x=0,                      // X coordinate                        const int               y=0,                      // Y coordinate                        const string            file_on="",               // image in On mode                        const string            file_off="",              // image in Off mode                        const int               width=0,                  // visibility scope X coordinate                        const int               height=0,                 // visibility scope Y coordinate                        const int               x_offset=10,              // visibility scope shift by X axis                        const int               y_offset=10,              // visibility scope shift by Y axis                        const bool              state=false,              // pressed/released                        const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // chart corner for anchoring                        const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // anchor type                         const color             clr=clrRed,               // border color when highlighted                        const ENUM_LINE_STYLE   style=STYLE_SOLID,        // line style when highlighted                        const int               point_width=1,            // move point size                        const bool              back=false,               // in the background                        const bool              selection=false,          // highlight to move                        const bool              hidden=true,              // hidden in the object list                        const long              z_order=0)                // priority for mouse click   { //--- reset the error value    ResetLastError(); //--- create a bitmap label    if(!ObjectCreate(chart_ID,name,OBJ_BITMAP_LABEL,sub_window,0,0))      {       Print(__FUNCTION__,             ": failed to create \"Bitmap Label\" object! Error code = ",GetLastError());       return(false);      } //--- set the images for On and Off modes    if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,0,file_on))      {       Print(__FUNCTION__,             ": failed to load the image for On mode! Error code = ",GetLastError());       return(false);      }    if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,1,file_off))      {       Print(__FUNCTION__,             ": failed to load the image for Off mode! Error code = ",GetLastError());       return(false);      } //--- set label coordinates    ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);    ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); //--- set visibility scope for the image; if width or height values //--- exceed the width and height (respectively) of a source image, //--- it is not drawn; in the opposite case, //--- only the part corresponding to these values is drawn    ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);    ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); //--- set the part of an image that is to be displayed in the visibility scope //--- the default part is the upper left area of an image; the values allow //--- performing a shift from this area displaying another part of the image    ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);    ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset); //--- define the label's status (pressed or released)    ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); //--- set the chart's corner, relative to which point coordinates are defined    ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); //--- set anchor type    ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor); //--- set the border color when object highlighting mode is enabled    ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); //--- set the border line style when object highlighting mode is enabled    ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); //--- set a size of the anchor point for moving an object    ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width); //--- display in the foreground (false) or background (true)    ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); //--- enable (true) or disable (false) the mode of moving the label by mouse    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); //--- hide (true) or display (false) graphical object name in the object list    ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); //--- set the priority for receiving the event of a mouse click in the chart    ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- successful execution    return(true);   } //+------------------------------------------------------------------+ //| Set a new image for Bitmap label object                          | //+------------------------------------------------------------------+ bool BitmapLabelSetImage(const long   chart_ID=0,      // chart's ID                          const string name="BmpLabel", // label name                          const int    on_off=0,        // modifier (On or Off)                          const string file="")         // path to the file   { //--- reset the error value    ResetLastError(); //--- set the path to the image file    if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,on_off,file))      {       Print(__FUNCTION__,             ": failed to load the image! Error code = ",GetLastError());       return(false);      } //--- successful execution    return(true);   } //+------------------------------------------------------------------+ //| Move Bitmap Label object                                         | //+------------------------------------------------------------------+ bool BitmapLabelMove(const long   chart_ID=0,      // chart's ID                      const string name="BmpLabel", // label name                      const int    x=0,             // X coordinate                      const int    y=0)             // Y coordinate   { //--- reset the error value    ResetLastError(); //--- move the object    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))      {       Print(__FUNCTION__,             ": failed to move X coordinate of the object! Error code = ",GetLastError());       return(false);      }    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))      {       Print(__FUNCTION__,             ": failed to move Y coordinate of the object! Error code = ",GetLastError());       return(false);      } //--- successful execution    return(true);   } //+------------------------------------------------------------------+ //| Change visibility scope (object) size                            | //+------------------------------------------------------------------+ bool BitmapLabelChangeSize(const long   chart_ID=0,      // chart's ID                            const string name="BmpLabel", // label name                            const int    width=0,         // label width                            const int    height=0)        // label height   { //--- reset the error value    ResetLastError(); //--- change the object size    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width))      {       Print(__FUNCTION__,             ": failed to change the object width! Error code = ",GetLastError());       return(false);      }    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height))      {       Print(__FUNCTION__,             ": failed to change the object height! Error code = ",GetLastError());       return(false);      } //--- successful execution    return(true);   } //+--------------------------------------------------------------------+ //| Change coordinate of the upper left corner of the visibility scope | //+--------------------------------------------------------------------+ bool BitmapLabelMoveVisibleArea(const long   chart_ID=0,      // chart's ID                                 const string name="BmpLabel", // label name                                 const int    x_offset=0,      // visibility scope X coordinate                                 const int    y_offset=0)      // visibility scope Y coordinate   { //--- reset the error value    ResetLastError(); //--- change the object's visibility scope coordinates    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset))      {       Print(__FUNCTION__,             ": failed to change X coordinate of the visibility scope! Error code = ",GetLastError());       return(false);      }    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset))      {       Print(__FUNCTION__,             ": failed to change Y coordinate of the visibility scope! Error code = ",GetLastError());       return(false);      } //--- successful execution    return(true);   } //+------------------------------------------------------------------+ //| Delete "Bitmap label" object                                     | //+------------------------------------------------------------------+ bool BitmapLabelDelete(const long   chart_ID=0,      // chart's ID                        const string name="BmpLabel") // label name   { //--- reset the error value    ResetLastError(); //--- delete the label    if(!ObjectDelete(chart_ID,name))      {       Print(__FUNCTION__,             ": failed to delete \"Bitmap label\" object! Error code = ",GetLastError());       return(false);      } //--- successful execution    return(true);   } //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   { //--- chart window size    long x_distance;    long y_distance; //--- set window size    if(!ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0,x_distance))      {       Print("Failed to get the chart width! Error code = ",GetLastError());       return;      }    if(!ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0,y_distance))      {       Print("Failed to get the chart height! Error code = ",GetLastError());       return;      } //--- define bitmap label coordinates    int x=(int)x_distance/2;    int y=(int)y_distance/2; //--- set label size and visibility scope coordinates    int width=32;    int height=32;    int x_offset=0;    int y_offset=0; //--- place bitmap label at the center of the window    if(!BitmapLabelCreate(0,InpName,0,x,y,InpFileOn,InpFileOff,width,height,x_offset,y_offset,InpState,       InpCorner,InpAnchor,InpColor,InpStyle,InpPointWidth,InpBack,InpSelection,InpHidden,InpZOrder))      {       return;      } //--- redraw the chart and wait one second    ChartRedraw();    Sleep(1000); //--- change label's visibility scope size in the loop    for(int i=0;i<6;i++)      {       //--- change visibility scope size       width--;       height--;       if(!BitmapLabelChangeSize(0,InpName,width,height))          return;       //--- check if the script's operation has been forcefully disabled       if(IsStopped())          return;       //--- redraw the chart       ChartRedraw();       // 0.3 seconds of delay       Sleep(300);      } //--- 1 second of delay    Sleep(1000); //--- change label's visibility scope coordinates in the loop    for(int i=0;i<2;i++)      {       //--- change visibility scope coordinates       x_offset++;       y_offset++;       if(!BitmapLabelMoveVisibleArea(0,InpName,x_offset,y_offset))          return;       //--- check if the script's operation has been forcefully disabled       if(IsStopped())          return;       //--- redraw the chart       ChartRedraw();       // 0.3 seconds of delay       Sleep(300);      } //--- 1 second of delay    Sleep(1000); //--- delete the label    BitmapLabelDelete(0,InpName);    ChartRedraw(); //--- 1 second of delay    Sleep(1000); //---   } ```