> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md).

# VImageEdit

**Hereda de:** [VAbstractBrowser](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vabstractbrowser.md).

Esta clase representa al control editor de imágenes.

## Indice de [propiedades](https://doc.velneo.com/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/pages/-M7D76qbevzoja7cFfBe#documentación-de-propiedades)

Boolean [modified](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#modified)

Boolean [readOnly](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#readonly)

## Funciones

### **Generales**

VImage [image](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#image)()

void [setImage](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#setimage)( VImage image )

void [setViewMode](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#setviewmode)( Number mode )

Number [viewMode](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#viewmode)()

### **De portapapeles**

Boolean [canPaste](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#canpaste)()

void [copy](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#copy)()

void [cut](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#cut)()

void [paste](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#paste)()

### **De comandos**

void [editDialog](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#editdialog)()

### **De cámara de fotos**

Boolean [isCameraActive](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#iscameraactive)()

void [startCamera](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#startcamera)( VBytearray deviceName )

void [startDefaultCamera](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#startdefaultcamera)()

void [stopCamera](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#stopcamera)()

void [takePicture](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimageedit.md#takepicture)()

## Señales

Value changed

## Documentación de propiedades

#### modified

Devuelve true si el contenido del control ha sido modificado.

#### readOnly

Permite leer o configurar si el control es de sólo lectura.

## Documentación de funciones

### Funciones generales

#### VImage image() <a href="#image" id="image"></a>

Crea un objeto de la clase [VImage](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimage.md) con la imagen contenida en el control.

#### void setImage( VImage image ) <a href="#setimage" id="setimage"></a>

Mueve la imagen del objeto de la clase VImagen al control.

Parámetros:

* image: objeto de la clase [VImage](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimage.md) que contiene la imagen a mover al control.

Si el control de edición del campo objeto dibujo (formulario) es de sólo lectura o no cumple la condición de la propiedad de activo, la imagen no se carga en el control. Debemos acceder al registro con la clase [VRegister](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vregister.md) y usar la función setFieldImage() para introducirlo en el campo y actualizar la vista.

#### void setViewMode( Number mode ) <a href="#setviewmode" id="setviewmode"></a>

Asigna el valor de la propiedad aspecto de dibujo que aplicará el control. Se debe usar el [enum](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimagewidget.md#enumeraciones) de *View modes* de la clase [VImageWidget](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimagewidget.md).&#x20;

Parámetros:

* mode: ver [enum de View modes de VImageWidget](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vimagewidget.md#enumeraciones).

**Ejemplo**: en un formulario, cambiar el modo de visualización de un control de edición de un campo objeto dibujo a mosaico:

```javascript
//Obtenemos el formulario
var formulario = theRoot.dataView();

//Obtenemos el control de edición del campo objeto dibujo
var edicionDibujo = formulario.control("ED_FOTO");

//Cambiamos el modo de visualización a mosaico
edicionDibujo.setViewMode(VImageWidget.ViewModeTile);
```

#### Number viewMode() <a href="#viewmode" id="viewmode"></a>

Devuelve el aspecto del dibujo aplicado en el control. Ver enum View modes.

### Funciones de portapapeles

#### Boolean canPaste() <a href="#canpaste" id="canpaste"></a>

Devuelve true si el control está activo y permite pegar una imagen a través del portapapeles.

#### void copy() <a href="#copy" id="copy"></a>

Copia la imagen del control al portapapeles.

#### void cut() <a href="#cut" id="cut"></a>

Corta la imagen del control y la mueve al portapapeles.

#### void paste() <a href="#paste" id="paste"></a>

Pega una imagen del portapapeles al control.

### Funciones de comandos

#### void editDialog() <a href="#editdialog" id="editdialog"></a>

Abre el cuadro de diálogo con el editor de imágenes de Velneo.

### Funciones de cámara de fotos

#### Boolean isCameraActive() <a href="#iscameraactive" id="iscameraactive"></a>

Devuelve true si el modo cámara está activo y false si está en modo normal.

#### void startCamera( VByteArray deviceName ) <a href="#startcamera" id="startcamera"></a>

Arranca el modo cámara en el control con la cámara especificada en el parámetro.

En la clase [VApp](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vapp.md) disponemos de la función availableCameras() para obtener un array de los dispositivos de cámara de fotos existentes en el sistema o defaultCamera() para obtener el nombre del dispositivo de cámara por defecto.

Parámetros:

* [VByteArray](/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vbytearray.md) deviceName: array de bites con el nombre del dispositivo.

#### void startDefaultCamera() <a href="#startdefaultcamera" id="startdefaultcamera"></a>

Arranca el modo cámara en el control con la cámara por defecto.

#### void stopCamera() <a href="#stopcamera" id="stopcamera"></a>

Cierra el modo cámara sin hacer foto.

#### void takePicture() <a href="#takepicture" id="takepicture"></a>

Hace una foto, cierra el modo cámara y deja la foto tomada en el campo y en el control imagen. Si aceptamos el formulario la foto queda guardada.

## Ejemplos

### 1. Cargar en un combobox de un formulario la lista de cámaras del dispositivo y activar la que el usuario seleccione

#### Proceso para alimentar el combo box de cámaras disponibles

```javascript
var aCamaras = Array;
var aCamarasDescripcion = Array;
var oCombo = theRoot.dataView().control("CBX_CAMARAS");

aCamaras = theApp.availableCameras();
aCamarasDescripcion = theApp.availableCameraDescriptions();

//Cargamos a continuacion todas las camaras detectadas por el sistema
for ( var i = 0; i < aCamarasDescripcion.length; i++ )
{
    oCombo.addItem( aCamarasDescripcion[ i ] );
}
```

#### Proceso para activar la cámara seleccionada en el combo

```javascript
// Obtenemos los nombres de las cámaras, que es lo que se usa para seleccionar la cámara
var aCamaras = theApp.availableCameras();

//Combobox
var oCombo = theRoot.dataView().control("CBX_CAMARAS");

// Objeto imagen del formulario
var objetoImagen = theRoot.dataView().control("IMAGEN");

// Posición del combo seleccionada que ha de corresponderse con el array de nombres de la cámara para que funcione
var i = oCombo.currentIndex;

// Nos quedamos con el nombre correspondiente a la cámara seleccionada por el array
var ba = new VByteArray();
ba.setText(aCamaras[i]);

// Iniciar cámara
objetoImagen.startCamera( ba );
```
