C sharp - Problema al liberar imagen MODI OCR

 
Vista:
sin imagen de perfil
Val: 19
Ha disminuido su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Problema al liberar imagen MODI OCR

Publicado por Hercross (11 intervenciones) el 05/11/2016 13:14:37
Hola buenos días..

Estoy usando MODI OCR para leer texto de unas imágenes TIF. Me funciona correctamente pero tengo problemas a la hora de eliminar el archivo, me dice que está siendo usado por otro proceso.

Este es mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
try
{
    Document Midocumento = new Document();
    Midocumento.Create(file_name);
    Midocumento.OCR(MiLANGUAGES.miLANG_SPANISH, true, true);
    MODI.Image img = (MODI.Image)Midocumento.Images[0];
    System.Runtime.InteropServices.Marshal.ReleaseComObject(img);
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(img);
    Midocumento.Close(false);
    Midocumento.Create("");
    System.Runtime.InteropServices.Marshal.ReleaseComObject(Midocumento);
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Midocumento);
    GC.Collect();
    GC.WaitForPendingFinalizers();
 
    GC.Collect();
    GC.WaitForPendingFinalizers();
 
    //Eliminamos el fichero PAR
    System.IO.File.Delete(file_name);
 
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

He probado varias formas de "liberar" la imagen pero siempre me da el mismo error al tratar de borrarla.

El problema es que no consiguo liberar img, que es ahí donde me salta el error.

Alguna idea de porqué puede ser?

Como puedo liberarla?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Problema al liberar imagen MODI OCR

Publicado por Miguel (160 intervenciones) el 05/11/2016 15:29:29
1) Crear una copia temporal del archivo para evitar bloquear el archivo original.

2) Utilizar un stream para cargar la imagen:

1
2
3
4
5
Image image;
using (FileStream stream = new FileStream("image.png", FileMode.Open, FileAccess.Read))
{
    image = Image.FromStream(stream);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha disminuido su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Problema al liberar imagen MODI OCR

Publicado por Hercross (11 intervenciones) el 05/11/2016 16:14:15
Hola Miguel, muchas gracias por responder...

Podrías ponerme un ejemplo segun el código que he subido? Es para que me quede mas claro,.

Mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Problema al liberar imagen MODI OCR

Publicado por Miguel (160 intervenciones) el 05/11/2016 17:12:04
1
2
3
4
5
Document Midocumento = new Document();
string nImage = System.IO.Path.GetTempFileName();
System.IO.File.Copy(originalFilename, nImage, true);
Midocumento.Create(nImage);
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 19
Ha disminuido su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Problema al liberar imagen MODI OCR

Publicado por Hercross (11 intervenciones) el 05/11/2016 17:32:01
Mil gracias..

Voy a probarlo..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha disminuido su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Problema al liberar imagen MODI OCR

Publicado por Hercross (11 intervenciones) el 07/11/2016 17:45:49
Muchas gracias señor..

Ha funcionado perfecto.

Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar