> ## 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.

# Método SetBitmapBits del objeto TrainingImage

> Método SetBitmapBits del objeto TrainingImage en la API de ABBYY FineReader Engine: establece los datos de la imagen de entrenamiento desde un búfer en memoria; la imagen debe ser isotrópica, en blanco y negro, de 1 bit por píxel (solo Windows).

<Warning>
  Este método no está implementado para Linux ni macOS
</Warning>

Este método establece los datos de la imagen de entrenamiento a partir del búfer en memoria.

La imagen debe ser isotrópica (es decir, su resolución horizontal debe ser igual a la vertical), en blanco y negro, con codificación de 1 bit por píxel.

La imagen se almacena en el búfer de forma continua, línea por línea, de arriba abajo. Una línea de imagen en blanco y negro se almacena como una secuencia de al menos N = ceil ( width / 8 ) bytes. Cada byte codifica los colores de 8 píxeles adyacentes; el bit más significativo del primer byte corresponde al píxel situado más a la izquierda de la línea. Un valor de bit de 0 indica un píxel blanco y un valor de 1 indica un píxel negro. Si width no es un múltiplo de 8, los bits menos significativos del N-ésimo byte se ignoran.

<div id="syntax">
  ## Sintaxis
</div>

<div id="c">
  ### C++
</div>

```cpp theme={null}
HRESULT SetBitmapBits(
  int     Height,
  int     Width,
  __int64 RawDataPointer
);
```

### C\#

```csharp theme={null}
void SetBitmapBits(
  int   Height,
  int   Width,
  Int64 RawDataPointer
);
```

<div id="visual-basic-net">
  ### Visual Basic .NET
</div>

```vb theme={null}
Sub SetBitmapBits( _
  Height As Integer, _
  Width As Integer, _
  RawDataPointer As Int64 _
)
```

<div id="parameters">
  ## Parámetros
</div>

Height

\[in] Especifica la altura de la imagen de entrenamiento en píxeles.

Width

\[in] Especifica el ancho de la imagen de entrenamiento en píxeles.

RawDataPointer

\[in] Este parámetro se considera un handle de un búfer de memoria que contiene datos de imagen. El handle se pasa como [\_\_int64](/es/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties).

<div id="return-values">
  ## Valores de retorno
</div>

En Windows: este método no tiene valores de retorno específicos. Devuelve los [valores de retorno estándar de las funciones de ABBYY FineReader Engine](/es/fine-reader/engine/api-reference/return-codes).

En Linux y macOS: este método devuelve E\_NOTIMPL.

<div id="remarks">
  ## Observaciones
</div>

Los datos de la imagen deben existir mientras exista el objeto [TrainingImage](/es/fine-reader/engine/api-reference/image-related-objects/trainingimage) correspondiente.

<div id="samples">
  ## Ejemplos
</div>

<Accordion title="Código C#">
  ```csharp theme={null}
  // El formato del bitmap debe ser el mismo que en FineReader Engine.
  // Si una imagen está en otro formato, puede usar el método Image.GetBitmap.
  // IntPtr hBitmap = document.Pages[0].ImageDocument.BlackWhiteImage.GetBitmap(null).Handle;
  // Bitmap bitmap = new Bitmap( Image.FromHbitmap( hBitmap ) );
  Bitmap bitmap = new Bitmap(imagePath);
  Rectangle imageRect = new Rectangle(0, 0, bitmap.Size.Width, bitmap.Size.Height);
  System.Drawing.Imaging.BitmapData data = bitmap.LockBits(imageRect, System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format1bppIndexed);
  FREngine.ITrainingImage trainingImage = engineLoader.Engine.CreateTrainingImage();
  trainingImage.SetBitmapBits(bitmap.Size.Height, bitmap.Size.Width, data.Scan0.ToInt64());
  ```
</Accordion>

<div id="see-also">
  ## Consulte también
</div>

[TrainingImage](/es/fine-reader/engine/api-reference/image-related-objects/trainingimage)
