Controlling Painting Properties

When working with DigitalPaint automation, specific properties, as well as the background color, can be set or retrieved using the following functions:

LAutomation::GetPaintBkColor

LAutomation::GetPaintProperty

LAutomation::SetPaintBkColor

LAutomation::SetPaintProperty

The LEADTOOLS DigitalPaint tools let you manipulate the following:

Each set of characteristics given above has several properties that can be set. This lets the user fine tune the output. These properties can be set using the LAutomation::SetPaintProperty function. To retrieve the current settings for the properties, use the LAutomation::GetPaintProperty function. Below is an example showing how to manipulate the Shape properties:

 

/* this example shows how to change the paint shape properties */
L_INT SetPaintShapePropsTest ( LAutomation * pAutomation ) 
{
   if ( SUCCESS == pAutomation->IsValid() ) /* check the validity of the automation handle */
   {
      PAINTSHAPE shape ; 


      /* set the paint shape group properties */
      pAutomation->GetPaintProperty ( PAINT_GROUP_SHAPE, &shape ) ; 

      /* make some changes to the required properties */
      if (PAINT_SHAPE_BORDER_STYLE_SOLID == shape.nBorderStyle ) 
      {
         /* set the desired shape properties using the field masks */
         shape.nSize         = sizeof ( PAINTSHAPE ) ; 
         shape.dwMask    = PSF_BORDERSTYLE |
                                   PSF_BORDERWIDTH |
                                   PSF_BORDERENDCAP; 
         shape.nBorderStyle  = PAINT_SHAPE_BORDER_STYLE_DOT ; 
         shape.nBorderWidth  = 10 ; 
         shape.nBorderEndCap = PAINT_SHAPE_BORDER_ENDCAP_ROUND ; 

         /*set the paint shape group properties */
         pAutomation->SetPaintProperty ( PAINT_GROUP_SHAPE, &shape ) ; 
      }

      return SUCCESS ; 
   }
   else
   {
      return FAILURE ; 
   }
}

For more examples showing the use of DigitalPaint automation, refer to DigitalPaint Automation Tutorials.

When the user cuts or deletes some region from a bitmap, an exposed area is left behind This area will be filled by the paint background color, set by the function LAutomation::SetPaintBkColor. To determine the current paint background color, call LAutomation::GetPaintBkColor. The example below shows how to retrieve and set the paint background color:

 

/* This example will make sure that the BK is not anything but black */
L_INT StickToBlack (LAutomation * pAutomation) 
{
   if ( SUCCESS == pAutomation->IsValid ( ) ) /* check the validity of the automation handle */
   {
      COLORREF crBkColor ; 


      /* get the current paint automation color */
      crBkColor = pAutomation->GetPaintBkColor () ; 
 
      if ( crBkColor != RGB ( 0, 0, 0 ) ) /* check if its not black */
      {
         /* set the paint automation background color */ 
         pAutomation->SetPaintBkColor (RGB(0, 0, 0 ) ) ; 
      }

      return SUCCESS ; 
   }
   else
   {
      return FAILURE ; 
   }
}