public final function drawDoubleBorder( $innerBorderColor, $outerBorderColor, bool $internal = true)
      : IImage
   {
      $innerBorderColor = $this->getGdColorObject( $innerBorderColor, 'bordercolor' );
      $outerBorderColor = $this->getGdColorObject( $outerBorderColor, 'outerbordercolor' );
      if ( $internal )
      {
         \imagerectangle( $this->r, 0, 0, $this->getWidth() - 1, $this->getHeight() - 1, $outerBorderColor->getGdValue() );
         \imagerectangle( $this->r, 1, 1, $this->getWidth() - 2, $this->getHeight() - 2, $innerBorderColor->getGdValue() );
         return $this;
      }
      $res = clone $this;
      \imagerectangle( $res->r, 0, 0, $this->getWidth() - 1, $this->getHeight() - 1, $outerBorderColor->getGdValue() );
      \imagerectangle( $res->r, 1, 1, $this->getWidth() - 2, $this->getHeight() - 2, $innerBorderColor->getGdValue() );
      return $res;
   }