> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IEditablePictureObject

> IEditablePictureObject en los scripts de ABBYY FlexiCapture: edita imágenes de página con métodos crop, deskew, despeckle, binarize, filtro de contraste y eliminación de sellos.

<div id="what-it-does">
  ## Qué hace
</div>

Representa una imagen que se puede editar en ABBYY FlexiCapture. El objeto es una extensión de la interfaz [IPictureObject](/es/flexi-capture/appendix/scripts/ipictureobject).

<Note>
  Este objeto no está disponible en la estación web de verificación para la comprobación local de reglas.
</Note>

<div id="methods">
  ## Métodos
</div>

| Método                                                                                         | Descripción                                                                                                                                                                                                                                                                           | Color de imagen admitido                     |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `ApplyContourSmoother( params: IContourSmootherParams )`                                       | Aplica el suavizado de contornos a una imagen.                                                                                                                                                                                                                                        | Para imágenes en escala de grises y en color |
| `ApplyLocalContrastFilter( params: ILocalContrastParams )`                                     | Aplica el filtro de contraste no adaptativo a una imagen.                                                                                                                                                                                                                             | Para imágenes en escala de grises y en color |
| `ApplyMultiscaleLocalContrastFilter()`                                                         | Aplica el filtro de contraste adaptativo a una imagen. Use este método para transformar una imagen en un documento escaneado.                                                                                                                                                         | Para imágenes en escala de grises y en color |
| `ApplyShadowsHighlightsFilter( params: IShadowsHighlightsParams )`                             | Aplica el realce de sombras a una imagen.                                                                                                                                                                                                                                             | Para imágenes en escala de grises y en color |
| `ApplySigmaFilter()`                                                                           | Elimina el ruido digital de una imagen.                                                                                                                                                                                                                                               | Para todas las imágenes                      |
| `AutoCrop( [optional] type: string )`                                                          | Recorta una imagen automáticamente. Los valores posibles del parámetro `type` son `Photo`, `Scan` y `Generic`. El valor predeterminado es `Generic`.                                                                                                                                  | Para todas las imágenes                      |
| `Binarize( params: IBinarizationParams )`                                                      | Convierte los colores de una imagen a blanco y negro. Tiene un conjunto de propiedades distinto del método `ConvertToBW`.                                                                                                                                                             | Para imágenes en escala de grises y en color |
| `ConvertToBW( [optional] threshold: int )`                                                     | Convierte una imagen a blanco y negro. Puede especificar un valor de umbral de brillo. Los valores superiores al umbral se consideran blancos y los inferiores, negros. El valor del umbral de brillo puede variar de `0` a `255`.                                                    | Para todas las imágenes                      |
| `CreateBinarizationParams(): IBinarizationParams`                                              | Crea un objeto con los parámetros del método `Binarize`.                                                                                                                                                                                                                              | Para todas las imágenes                      |
| `CreateContourSmootherParams(): IContourSmootherParams`                                        | Crea un objeto con parámetros para el suavizador de contornos.                                                                                                                                                                                                                        | Para todas las imágenes                      |
| `CreateLocalContrastFilterParams(): ILocalContrastParams`                                      | Crea un objeto con parámetros para la acción de contraste. Los parámetros del filtro se establecen con los valores predeterminados.                                                                                                                                                   | Para todas las imágenes                      |
| `CreateShadowsHighlightsFilterParams(): IShadowsHighlightsParams`                              | Crea un objeto con parámetros para la acción de cambiar el efecto de iluminación de las sombras.                                                                                                                                                                                      | Para todas las imágenes                      |
| `Crop( rect: string )`                                                                         | Recorta la imagen fuera del rectángulo especificado.                                                                                                                                                                                                                                  | Para todas las imágenes                      |
| `CutOut( rect: string ): IEditablePictureObject`                                               | Corta un rectángulo especificado de la imagen y devuelve este rectángulo.                                                                                                                                                                                                             | Para todo tipo de imágenes                   |
| `Deskew( [optional] byLines: bool, [optional] byBlackSquares: bool, [optional] byText: bool )` | Corrige la inclinación de la imagen. La inclinación puede corregirse basándose en líneas rectas, cuadrados negros o texto. De forma predeterminada, el parámetro `byText` está establecido en `true`.                                                                                 | Para todo tipo de imágenes                   |
| `Despeckle( [optional] garbageSize: int )`                                                     | Elimina el ruido de las imágenes en blanco y negro. Se eliminan las motas de hasta el tamaño indicado. Si no se especifica el parámetro `garbageSize`, el tamaño se detecta automáticamente.                                                                                          | Solo para imágenes en blanco y negro         |
| `Erase( rectangle: cadena, [opcional] red: int, [opcional] green: int, [opcional] blue: int )` | Borra un área de la imagen. Puede especificar el color con el que se borrará el área. De forma predeterminada, se utiliza el color negro.                                                                                                                                             | Para todas las imágenes                      |
| `FlipHorizontal()`                                                                             | Invierte la imagen horizontalmente.                                                                                                                                                                                                                                                   | Para todas las imágenes                      |
| `FlipVertical()`                                                                               | Voltea la imagen verticalmente.                                                                                                                                                                                                                                                       | Para todas las imágenes                      |
| `FreeScale( newWidth: int, newHeight: int, newResolution: int )`                               | Redimensiona la página según los nuevos valores.                                                                                                                                                                                                                                      | Para todas las imágenes                      |
| `Invert( [opcional] rectString: cadena )`                                                      | Invierte la imagen. Puede especificar una cadena con las coordenadas del rectángulo que desea invertir.                                                                                                                                                                               | Para todas las imágenes                      |
| `NewRectsArray(): IRects`                                                                      | Crea una nueva colección de rectángulos. Devuelve un objeto [IRects](/es/flexi-capture/appendix/scripts/irects).                                                                                                                                                                      | Solo para imágenes en color                  |
| `RemoveMotionBlur()`                                                                           | Elimina el desenfoque causado por el movimiento del documento, la cámara o el escáner durante el escaneo.                                                                                                                                                                             | Para todas las imágenes                      |
| `RemoveStamps( color: TColorToFilter, rects: IRects )`                                         | Elimina sellos de color y otras marcas de un color determinado de una imagen. Para obtener más información, consulte [Eliminar sellos de color de una imagen](#remove-color-stamps-from-an-image).                                                                                    | Solo para imágenes en color                  |
| `RemoveStampsExt( colorsToFilter: string )`                                                    | Elimina sellos de color y otras marcas de una imagen mediante un algoritmo mejorado que permite eliminar una mayor variedad de colores. Este es el método recomendado. Para obtener más información, consulte [Quitar colores de sello adicionales](#remove-additional-stamp-colors). | Solo para imágenes en color                  |
| `Rotate( angle: int )`                                                                         | Gira la imagen en el sentido de las agujas del reloj hasta el ángulo indicado.                                                                                                                                                                                                        | Para todas las imágenes                      |
| `Scale( ratio: int )`                                                                          | Estira o comprime la imagen con respecto al tamaño base del 100 %. El método solo se aplica al tamaño en píxeles de la imagen. El tamaño físico de la imagen no cambia.                                                                                                               | Para todas las imágenes                      |

<Note>
  El parámetro `rect` que se pasa a los métodos `CutOut` y `Crop` es una cadena con el formato `"[left, top, right, bottom]"`. Para obtener esta cadena, llame al método `ToString` de cualquier objeto [IRect](/es/flexi-capture/appendix/scripts/irect) o use el método `Rect` de [IFlexiCaptureTools](/es/flexi-capture/appendix/scripts/iexportimagetools) (`FCTools`).
</Note>

<div id="remove-color-stamps-from-an-image">
  ## Eliminar sellos de color de una imagen
</div>

El método `RemoveStamps` elimina sellos de color y otras marcas de un color especificado de una imagen. Este método solo funciona con imágenes en color.

| Parámetro | Tipo                                                  | Descripción                                                      |
| --------- | ----------------------------------------------------- | ---------------------------------------------------------------- |
| `color`   | [TColorToFilter](/es/flexi-capture/t-color-to-filter) | El color de los sellos que se van a eliminar.                    |
| `rects`   | [IRects](/es/flexi-capture/appendix/scripts/irects)   | La colección de rectángulos de los sellos que se van a eliminar. |

El siguiente script de ejemplo para un evento [On User Command](/es/flexi-capture/appendix/scripts-shell/user-command) elimina los sellos rojos de todas las páginas. Se buscan sellos en toda el área de la página.

```csharp theme={null}
MainWindow.TaskWindow.OpenDocument( MainWindow.TaskWindow.EditorWindow.Document );
foreach (IPage page in MainWindow.TaskWindow.EditorWindow.Document.Pages)
{
    if (page.Picture.IsColor)
    {
        IEditablePictureObject editablePicture = page.Picture.CreateEditableCopy();
        IRects rects = editablePicture.NewRectsArray();
        rects.AddRect(0, 0, editablePicture.Width - 1, editablePicture.Height - 1); // toda la página
        editablePicture.RemoveStamps(TColorToFilter.CTF_Red, rects);
        page.ReplaceImage(editablePicture);
    }
}
```

<div id="remove-additional-stamp-colors">
  ## Eliminar colores de sello adicionales
</div>

El método `RemoveStampsExt` elimina de una imagen los sellos de color y otras marcas de un color especificado. Es similar a `RemoveStamps`, pero utiliza un algoritmo mejorado que elimina una mayor variedad de colores. Este es el método recomendado para eliminar sellos.

El parámetro `colorsToFilter` (`string`) establece el color de los sellos que se deben eliminar:

* Acepta los siguientes valores de cadena: `Red`, `Green`, `Blue`, `Yellow`, `Orange`, `LightBlue` y `Purple` (no distingue entre mayúsculas y minúsculas).
* Puede especificar varios valores separados por comas, por ejemplo, `"Red, Green"`.
* Puede especificar una cadena vacía (`""`) para que el programa seleccione automáticamente el color de sello adecuado. El programa elimina cualquier sello que detecte en una imagen y que tenga uno de los valores de color permitidos.

El siguiente script de ejemplo para un evento [On User Command](/es/flexi-capture/appendix/scripts-shell/user-command) elimina los sellos rojos y verdes de todas las páginas:

```csharp theme={null}
foreach (IPage page in Document.Pages)
{
    if (page.Picture.IsColor)
    {
        IPictureObject picture = page.Picture;
        IEditablePictureObject editablePicture = picture.CreateEditableCopy();
        editablePicture.RemoveStampsExt("Red, Green");
        page.ReplaceImage(editablePicture);
    }
}
```

<div id="custom-processing-stage-examples">
  ## Ejemplos de etapas de procesamiento personalizadas
</div>

Estos scripts muestran cómo usar métodos de `IEditablePictureObject` en etapas de procesamiento personalizadas.

<div id="apply-a-local-contrast-filter">
  ### Aplicar un filtro de contraste local
</div>

Este script crea un objeto con parámetros para el filtro de contraste local, ajusta los parámetros manualmente y aplica el filtro a una imagen.

```csharp theme={null}
foreach( IPage page in Document.Pages )
{
    IPictureObject picture = page.Picture;
    IEditablePictureObject editablePicture = picture.CreateEditableCopy();
    // Creación de un objeto con parámetros (los parámetros se establecen de forma predeterminada)
    ILocalContrastParams localContrastParams = editablePicture.CreateLocalContrastFilterParams();
    // Configuración de los parámetros cuyos valores se modificarán posteriormente
    localContrastParams.Radius = 7;
    localContrastParams.NoiseLevel = 200;
    // Aplicación de un filtro a la imagen
    editablePicture.ApplyLocalContrastFilter( localContrastParams );
    // Reemplazo de la imagen de una página por la versión modificada
    page.ReplaceImage( editablePicture );
}
```

<div id="binarize-an-image-with-custom-parameters">
  ### Binarizar una imagen con parámetros personalizados
</div>

Este script crea un objeto con parámetros para el método `Binarize` y convierte la imagen en blanco y negro con los parámetros establecidos.

```csharp theme={null}
foreach ( IPage page in Document.Pages )
{
    IPictureObject picture = page.Picture;
    IEditablePictureObject editablePicture = picture.CreateEditableCopy();
    // Creación de un objeto con parámetros (los parámetros se establecen de forma predeterminada)
    IBinarizationParams binarizationParams =  editablePicture.CreateBinarizationParams();
    // Configuración del parámetro en verdadero o falso
    binarizationParams.SmoothTexture = false;
    editablePicture.Binarize( binarizationParams );
    page.ReplaceImage( editablePicture );
}
```

<div id="enhance-selected-pages-from-the-verification-station">
  ### Mejorar las páginas seleccionadas en Verification Station
</div>

Este script aumenta el contraste, elimina el ruido digital, aplica el recorte automático y corrige el desenfoque de las páginas seleccionadas. El operador de Verification Station ejecuta el script.

```csharp theme={null}
foreach( IPageItem pageItem in MainWindow.Selection.PageItems) {
    pageItem.TaskWindow.CloseEditorWindow();
    pageItem.TaskWindow.OpenDocument(  pageItem.DocumentItem.Document );
    IPage page = pageItem.Page;
    IEditablePictureObject editablePicture = page.Picture.CreateEditableCopy();
    // Aplica las transformaciones de imagen
    editablePicture.AutoCrop();
    editablePicture.ApplySigmaFilter();
    editablePicture.ApplyMultiscaleLocalContrastFilter();
    editablePicture.RemoveMotionBlur();
    // Reemplaza la imagen del documento original con la imagen editada
    page.ReplaceImage( editablePicture );
    pageItem.TaskWindow.CloseDocument(  pageItem.DocumentItem.Document );
}
```
